HTTP 1.1
HTTP 1.1 is an upgrade to the original HTTP 1.0. There are lots of differences between the two specifications.
The primary difference between HTTP 1.1 and 1.0 is that 1.1 formalised the keep-alive behaviour of HTTP. That is rather than opening a separate connection to the web server for each file (page, image, stylesheet etc), a web browser can request multiple files in a single connection (one after the other). This makes 1.1 a lot more efficient, as opening a new connection is more “expensive” than re-using an existing one.
Charles supports both HTTP 1.1 and 1.0, however if you use HTTP 1.1 you get the benefit of keep-alive connections and thus increased performance.
Most web browsers currently use HTTP 1.1. However many are configured to fall back to 1.0 when talking to proxies (such as Charles).
Some other features of Charles also require that you are using HTTP 1.1 through Charles, including:
- NTLM Authentication
Configuring your Web Browser
In order to use HTTP 1.1 through Charles you’ll need to check that your web browser is configured to use HTTP 1.1 through proxies.
You can check if you’re using HTTP 1.1 by looking at the request headers displayed in Charles. If the first line has an HTTP/1.1 in it then you are. Otherwise you’ll probably see HTTP/1.0.
Internet Explorer
Go to the Tools menu and choose Internet Options.... Go to the Advanced tab and scroll down until you see the HTTP 1.1 Settings section. There should be two check boxes; one for using HTTP 1.1 in general and one through proxy connections. Both of these should be checked. Then you’ll be using HTTP 1.1 through Charles.