The HTTP/1.1 Protocol

The HTTP/1.1 protocol is the current way most browsers request and send information over the web (i.e. how your browser speaks to an internet web page, in simple terms). The browser first makes a connection and sends a request to get a page. Then as that information is returned, it can contain additional resources needed (images, CSS, scripts) that are then requested.

Definitions:

Browser (or client) — your web browser, be it Opera, Firefox, Internet Explorer or something else.

Server — the program that manages the remote web site you visit.

Connections — think of it as a line of communication opened up between browser and server.

Persistent Connection — a connection between the browser and a web server that stays open to allow more than one element to pass between them (saves on the time and resources invested in opening new connections). Used by default in Opera, with the settings defined in Preferences » Network. RFC2616 specifies that only a maximum of 2 persistent connections should be established between the browser and server. Opera sets half of the "max connections per server" to be persistent connections and half to close for performance reasons{1}{2}. Often too many connections to a server are far less efficient than a smaller number that are pipelined and persistent. Opera developers suggest a maximum of about 8 connections per server{1}.

Pipelining — allowing more than one request from the browser to be sent before receiving a reply from the server (the server MUST always return them in the same order they were sent). This often reduces the page loading times (especially on high latency connections like dial-up and on cache validation), and especially reduces the numbers of packets needed for a page (re)load {3}. Opera pipelines by default - and uses heuristics to control the level of pipelining employed depending on the server Opera is connected to{1}. In Firefox, pipelining is OFF by default and needs to be turned on (see about:config[1]), Firefox also uses some heuristics, especially to turn pipelining OFF for IIS servers. IE doesn't pipeline at all.

Some Links:

Footnotes:

[1] Here are my Firefox Network settings:

user_pref("network.http.max-connections", 32);
user_pref("network.http.max-connections-per-server", 8);
user_pref("network.http.max-persistent-connections-per-server", 4);
user_pref("network.http.max-persistent-connections-per-proxy", 32);
user_pref("network.http.pipelining", true);
user_pref("network.http.pipelining.firstrequest", false);
user_pref("network.http.pipelining.maxrequests", 4);
user_pref("network.http.proxy.pipelining", true);
Back Links

Category

CategoryTechnical

There are 52 comments on this page. [Display and/or add comments]