HTTP pipeline 和 persistent connection
来自Laurence:浏览器pipeline
IE, Firefox, and Safari ship with HTTP pipelining disabled by default; Opera is the only browser I know of that enables it. No pipelining means each request has to be answered and its connection freed up before the next request can be sent. This incurs average extra latency of the round-trip (ping) time to the user divided by the number of connections allowed. Or if your server has HTTP keepalives disabled, doing another TCP three-way handshake adds another round trip, doubling this latency.
来自wikipedia:HTTP Pipeline
HTTP pipelining is a technique in which multiple HTTP requests are written out to a single socket without waiting for the corresponding responses. Pipelining is only supported in HTTP/1.1, not in 1.0.
The pipelining of requests results in a dramatic improvement in page loading times, especially over high latency connections such as satellite Internet connections.
Since it is usually possible to fit several HTTP requests in the same TCP packet, HTTP pipelining allows fewer TCP packets to be sent over the network, reducing network load.
Only idempotent requests should be pipelined, such as GET and HEAD requests. POST requests should not be pipelined. Requests on a new connection should not be pipelined either, since it has not yet been determined if the origin server (or proxy server) supports HTTP/1.1. Hence, pipelining can only be done when reusing an existing (keepalive) persistent connection.
HTTP pipelining requires both the client and the server to support it. HTTP/1.1 conforming servers are required to support pipelining. This does not mean that servers are required to pipeline responses, but that they are required not to fail if a client chooses to pipeline requests.

来自wikepedia:HTTP Persistence Connection
HTTP persistent connections, also called HTTP keep-alive, or HTTP connection reuse, is the idea of using the same TCP connection to send and receive multiple HTTP requests/responses, as opposed to opening a new connection for every single request/response pair.
Advantages
less CPU and memory usage (because fewer connections are open simultaneously)
enables HTTP pipelining of requests and responses
reduced network congestion (fewer TCP connections)
reduced latency in subsequent requests (no handshaking)
errors can be reported without the penalty of closing the TCP connection
According to RFC 2616 (page 47), a single-user client should not maintain more than 2 connections with any server or proxy. A proxy should use up to 2*N connections to another server or proxy, where N is the number of simultaneously active users. These guidelines are intended to improve HTTP response times and avoid congestion.

Reference:
http://www.mozilla.org/projects/netlib/http/pipelining-faq.html
http://en.wikipedia.org/wiki/HTTP_pipelining
http://en.wikipedia.org/wiki/HTTP_persistent_connection