Information about Http Pipelining

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.

Implementation status

Implementation in web servers

Implementing pipelining in web servers is a relatively simple matter of making sure that network buffers are not discarded between requests. For that reason, most modern web servers handle pipelining without any problem.

Exceptions include IIS 4 and reportedly 5.

Implementation in web browsers

Internet Explorer as of version 7 doesn't support pipelining.

Mozilla Firefox 2.0 supports pipelining, but it's disabled by default. It uses some heuristics, especially to turn pipelining off for IIS servers. Instructions for enabling pipelining can be found at Firefox Help: Tips & Tricks.

Konqueror 2.0 supports pipelining, but it's disabled by default. Instructions for enabling it can be found at .

Opera has pipelining enabled by default. It uses heuristics to control the level of pipelining employed depending on the connected server.

Implementation in web proxies

Most HTTP proxies do not pipeline outgoing requests, as demonstrated by this report.

Some versions of the Squid web proxy will pipeline up to two outgoing requests. This functionality has been disabled in the latest versions.

The Polipo proxy pipelines outgoing requests.

Other implementations

Some other applications currently exploiting pipelining are phttpget from FreeBSD (a minimalist pipelined HTTP client), portsnap (a FreeBSD ports tree distribution system) and lftp (a sophisticated file transfer program).

External links

Hypertext Transfer Protocol (HTTP) is a communications protocol used to transfer or convey information on the World Wide Web. Its original purpose was to provide a way to publish and retrieve HTML hypertext pages.
..... Click the link for more information.
Hypertext Transfer Protocol (HTTP) is a communications protocol used to transfer or convey information on the World Wide Web. Its original purpose was to provide a way to publish and retrieve HTML hypertext pages.
..... Click the link for more information.
An Internet socket (or commonly, a socket or network socket), is a communication end-point unique to a machine communicating on an Internet Protocol-based network, such as the Internet.
..... Click the link for more information.
In computing and especially computer networks, a lag is a symptom where result of an action appears later than expected. While different kinds of latency are well defined technical terms, lag is the symptom, not the cause.
..... Click the link for more information.
Satellite Internet services are used in locations where terrestrial Internet access is not available and in locations which move frequently. Internet access via satellite is available worldwide, including vessels at sea and mobile land vehicles.
..... Click the link for more information.
The Transmission Control Protocol (TCP) is one of the core protocols of the Internet protocol suite. TCP provides reliable, in-order delivery of a stream of bytes, making it suitable for applications like file transfer and e-mail.
..... Click the link for more information.

..... Click the link for more information.
Computer networking is the engineering discipline concerned with communication between computer systems or devices. Networking, routers, routing protocols, and networking over the public Internet have their specifications defined in documents called RFCs.
..... Click the link for more information.
Idempotence IPA: /ˌaɪdɨmˈpoʊtənts/ describes the property of operations in mathematics and computer science that yield the same result after the operation is applied multiple times.
..... Click the link for more information.
In computer networking, upstream server refers to a server that provides service to another server. In other words, upstream server is a server that is located higher in the hierarchy of servers. The highest server in the hierarchy is sometimes called the origin server.
..... Click the link for more information.
In computer networks, a proxy server is a server (a computer system or an application program) which services the requests of its clients by forwarding requests to other servers.
..... Click the link for more information.
A keepalive is a message sent by one device to another to check that the link between the two is operating.

Description

A keepalive signal is often sent at predefined intervals, and plays an important role on the Internet.
..... Click the link for more information.
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.
..... Click the link for more information.
Windows Internet Explorer (formerly Microsoft Internet Explorer abbreviated MSIE), commonly abbreviated to IE, is a series of proprietary graphical web browsers developed by Microsoft and included as part of the Microsoft Windows line of operating systems
..... Click the link for more information.
Maintainer: Mozilla Corporation / Mozilla Foundation

OS: Cross-platform
Available language(s): Multilingual,[1] EULA in English only[2]
Use: Web browser
License: Mozilla EULA for binary redistribution

..... Click the link for more information.
heuristic has two well-defined technical meanings. It can either be any algorithm that gives up finding the optimal solution for an improvement in run time or it can be a function that estimates the cost of the cheapest path from one node to another.
..... Click the link for more information.
Internet Information Services (IIS, formerly called Internet Information Server) is a set of Internet-based services for servers using Microsoft Windows. It is the world's second most popular web server in terms of overall websites, behind Apache HTTP Server.
..... Click the link for more information.
web server can mean one of two things:
  1. A computer program that is responsible for accepting HTTP requests from clients, which are known as web browsers, and serving them HTTP responses along with optional data contents, which usually are web pages such as HTML documents and

..... Click the link for more information.
Maintainer: The KDE Team

OS: Linux, Mac OS X, Unix-like and embedded systems

Use: Web browser, File browser
License: GNU GPL
Website: Konqueror Konqueror
..... Click the link for more information.
Maintainer: Opera Software ASA

OS: Cross-platform

Use: Internet suite
License: Proprietary
Website: [1] Opera is a cross-platform web browser and Internet suite developed by the Opera Software corporation.
..... Click the link for more information.
heuristic has two well-defined technical meanings. It can either be any algorithm that gives up finding the optimal solution for an improvement in run time or it can be a function that estimates the cost of the cheapest path from one node to another.
..... Click the link for more information.
web server can mean one of two things:
  1. A computer program that is responsible for accepting HTTP requests from clients, which are known as web browsers, and serving them HTTP responses along with optional data contents, which usually are web pages such as HTML documents and

..... Click the link for more information.
FreeBSD is a Unix-like free operating system descended from AT&T UNIX via the Berkeley Software Distribution (BSD) branch through the 386BSD and 4.4BSD operating systems.
..... Click the link for more information.
Portsnap is a system for secure distribution of compressed, digitally signed snapshots of the FreeBSD ports tree. The distribution follows client/server model and the protocol used is HTTP (pipelined HTTP).

As of FreeBSD 6.
..... Click the link for more information.
FreeBSD is a Unix-like free operating system descended from AT&T UNIX via the Berkeley Software Distribution (BSD) branch through the 386BSD and 4.4BSD operating systems.
..... Click the link for more information.
This section needs subsections.
Please format the article according to the guidelines laid out at
Wikipedia:Manual of Style (headings).

The FreeBSD Ports collection
..... Click the link for more information.
lftp is a command-line file transfer program (FTP client) for UNIX and Unix-like systems. It was written by Alexander Lukyanov, and is made available under the GNU General Public License.
..... Click the link for more information.


This article is copied from an article on Wikipedia.org - the free encyclopedia created and edited by online user community. The text was not checked or edited by anyone on our staff. Although the vast majority of the wikipedia encyclopedia articles provide accurate and timely information please do not assume the accuracy of any particular article. This article is distributed under the terms of GNU Free Documentation License.
Herod_Archelaus


page counter