Skip to content →

Requests & Responses

A request and its response is the basic element recorded in Charles.

HTTP/HTTPS consists of request-response pairs: the request from your computer to the server and the response from the server.

For generic sockets the request-response consists of the entire contents of the inbound and outbound streams. This is not always so useful for sockets and may be improved in future. If you need to do a lot of socket level debugging you may want to consider using Ethereal.

Viewing Requests

Requests appear in the Session window when they are recorded. There are two different ways of viewing the session window: structure view and sequence view.

Structure view lets you view the requests in a tree organised by the host name and then folders/directories within the host. Sequence view lets your view the requests in the sequence that they occur.

When you click on a request the Request Viewer loads in the session window to show you the details.

You can always see the HTTP request and response headers and the request and response bodies, either as plain text or binary (hexadecimal & ascii). There are also special viewers for headers and bodies that enhance the display:

Header Viewers

  • Query parameters
  • Form parameters
  • Cookies
  • Authentication
  • JSON headers

Body Content Viewers

  • XML as a tree or as formatted text
  • AMF (Actionscript Message Format – Flash & Flex Remoting)
  • Form parameters (including Multipart forms)
  • JSON
  • Compressed data – for viewing the original compressed body

Saving Requests & Responses

Right-click a request in the navigator view to get additional options. You can copy or save the request and response bodies. If you select multiple requests you can save them all at once.