Close
Type at least 1 character to search
Back to top

Internet Visualized: Charles II

Monitoring your iOS server requests.

If you got Charles set up properly in the last writeup, then you were probably able to monitor all the requests from your iPad in the ‘Structure’ sidebar of Charles. If it didn’t work, did you have the IP address of your Mac correctly entered? Did you have the ‘Recording’ button turned on in Charles? You’ll need to be recording to get the requests to appear. Another consideration is that the ‘Structure’ sidebar is often so flooded with requests that you can’t see the new ones appear — especially if they are at the bottom. So entering a filter is essential.

If you are monitoring an app that you wrote yourself, then you’ll know the URL — or a portion of it — for the requests that you make. That should be your filter. If you are playing in Safari on the iPad, then go to a website you like, like apple.com. And that name can be your filter.


Once you see new requests, then the fun begins. In the sidebar, where you have filtered your requests, expand the URL of one of your requests using the chevron on the far left. In the example image below, I’ve been looking at requests going out to my Bestart app — requesting images from my blob storage in Microsoft Azure.

Note that in Charles you should now select the ‘Overview’ tab and see a summary of each request to the server. It shows the URL, some security strings that I’ve blacked out, and importantly, the timing for your request. In itself this request looks pretty good. Or does it? We will come to that.

 

The Bestart App:
In the left sidebar, select the ‘Sequence’ tab instead of the ‘Structure’ tab. Here you can see a list of all the requests from Bestart. Notice that you can see the duration of download of the images as well as the size of each image (in the compressed JPG or PNG format on the server).

Bestart displays images on a timer. It works by downloading a JSON list of all the images available for a particular artist. Then it downloads images based on the URL in the JSON resource.

The Blob storage in Azure has a number of settings that allow me to save cost. One of these is a setting that reduces the speed of availability of data but also reduces the cost of storage. Is that what’s going on here? Are the durations really nearly 30 seconds for each image?

Nonetheless, you can see that Charles is giving us some valuable insight into our server request durations.  What else can Charles tell us? More on that next time.

Designers

James Robinson Douglas Stewart

Date