All Topics  
HTTP pipelining

 

   Email Print
   Bookmark   Link






 

HTTP pipelining



 
 
HTTP pipelining is a technique in which multiple HTTP requests are written out to a single socket
Internet socket

An Internet socket is used in inter-process communication across an Internet Protocol based Computer_network such as the Internet. Internet sockets constitute a mechanism for delivering incoming data packets to the appropriate application process or Thread , based on a combination of local and remote IP addresses and port numbers....
 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
Lag

In computing and especially computer networks, lag is a term used where the computer freezes and then continues some time later when an action is performed, for example clicking a mouse button....
 connections such as satellite Internet connections.

Since it is usually possible to fit several HTTP requests in the same TCP
Transmission Control Protocol

The Transmission Control Protocol is one of the core protocols of the Internet Protocol Suite. TCP is so central that the entire suite is often referred to as "TCP/IP"....
 packet, HTTP pipelining allows fewer TCP packets to be sent over the network
Computer networking

Computer networking is the engineering discipline concerned with communication between computer systems or Peripheral devices. Networking, routers, routing protocols, and networking over the public Internet have their specifications defined in documents called Request for Commentss....
, reducing network load.

Non-idempotent methods like POST should not be pipelined.






Discussion
Ask a question about 'HTTP pipelining'
Start a new discussion about 'HTTP pipelining'
Answer questions from other users
Full Discussion Forum



Encyclopedia


HTTP pipelining is a technique in which multiple HTTP requests are written out to a single socket
Internet socket

An Internet socket is used in inter-process communication across an Internet Protocol based Computer_network such as the Internet. Internet sockets constitute a mechanism for delivering incoming data packets to the appropriate application process or Thread , based on a combination of local and remote IP addresses and port numbers....
 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
Lag

In computing and especially computer networks, lag is a term used where the computer freezes and then continues some time later when an action is performed, for example clicking a mouse button....
 connections such as satellite Internet connections.

Since it is usually possible to fit several HTTP requests in the same TCP
Transmission Control Protocol

The Transmission Control Protocol is one of the core protocols of the Internet Protocol Suite. TCP is so central that the entire suite is often referred to as "TCP/IP"....
 packet, HTTP pipelining allows fewer TCP packets to be sent over the network
Computer networking

Computer networking is the engineering discipline concerned with communication between computer systems or Peripheral devices. Networking, routers, routing protocols, and networking over the public Internet have their specifications defined in documents called Request for Commentss....
, reducing network load.

Non-idempotent methods like POST should not be pipelined. Sequence of GET and HEAD requests can be always pipelined. A sequence of other idempotent requests like GET, HEAD, PUT and DELETE can be idempotent or not depending on whether requests in the sequence depend on the effect of others.

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
Internet Explorer

Windows Internet Explorer , commonly abbreviated to IE, is a series of graphical user interface web browsers developed by Microsoft and included as part of the Microsoft Windows line of operating systems starting in 1995....
 as of version 7 doesn't support pipelining.

Mozilla Firefox
Mozilla Firefox

Mozilla Firefox is a web browser descended from the Mozilla Application Suite and managed by Mozilla Corporation. Official versions are distributed under the terms of the proprietary EULA....
 3.0 supports pipelining, but it's disabled by default. It uses some heuristic
Heuristic (computer science)

In computer science, a heuristic algorithm, or simply a heuristic, is an algorithm that is able to produce an acceptable solution to a problem in many practical scenarios, but for which there is no formal proof of its correctness....
s, especially to turn pipelining off for IIS
Internet Information Services

Internet Information Services - formerly called Internet Information Server - is a set of Internet-based services for servers created by Microsoft for use with Microsoft Windows....
 server
Web server

The term web server can mean one of two things:# A computer program that is responsible for accepting Hypertext Transfer Protocol requests from clients , and Server them HTTP responses along with optional data contents, which usually are web pages such as Hypertext Markup Language documents and linked objects ....
s. Camino
Camino

Camino is a free software, open source, graphical user interface Web browser based on Mozilla Foundation's Gecko and specifically designed for the Mac OS X operating system....
 does the same thing as Firefox.

Konqueror
Konqueror

Konqueror is a web browser, file manager and file viewer designed as a core part of the KDE. It is developed by volunteers and can run on most Unix-like operating systems....
 2.0 supports pipelining, but it's disabled by default. Instructions for enabling it can be found at .

Opera
Opera (web browser)

Opera is a web browser and Internet suite developed by the Opera Software company. Opera handles common Internet-related tasks such as displaying web sites, sending and receiving e-mail messages, managing contacts, IRC online chatting, downloading files via BitTorrent , and reading web feeds....
 has pipelining enabled by default. It uses heuristic
Heuristic (computer science)

In computer science, a heuristic algorithm, or simply a heuristic, is an algorithm that is able to produce an acceptable solution to a problem in many practical scenarios, but for which there is no formal proof of its correctness....
s to control the level of pipelining employed depending on the connected server
Web server

The term web server can mean one of two things:# A computer program that is responsible for accepting Hypertext Transfer Protocol requests from clients , and Server them HTTP responses along with optional data contents, which usually are web pages such as Hypertext Markup Language documents and linked objects ....
.

Google Chrome
Google Chrome

Google Chrome is a web browser developed by Google and based on the WebKit layout engine and application framework.In February 2009, it had a share of 1.15% of the web browser market....
 is not believed to support pipelining.

Implementation in web proxies

Most HTTP proxies do not pipeline outgoing requests.

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

The proxy pipelines outgoing requests.

Other implementations

Some other applications currently exploiting pipelining are from FreeBSD
FreeBSD

FreeBSD is a Unix-like free software operating system descended from AT&T Unix via the Berkeley Software Distribution branch through the 386BSD and Berkeley Software Distribution#4.4BSD and descendants operating systems....
 (a minimalist pipelined HTTP client), portsnap
Portsnap

Portsnap is a system for secure distribution of data compression, cryptography snapshots of the FreeBSD Ports collection. The distribution follows Client-server and the protocol used is [] ....
 (a FreeBSD
FreeBSD

FreeBSD is a Unix-like free software operating system descended from AT&T Unix via the Berkeley Software Distribution branch through the 386BSD and Berkeley Software Distribution#4.4BSD and descendants operating systems....
 ports tree
FreeBSD Ports

The FreeBSD Ports collection is a package management system which provides an easy and consistent way of installing software packages on the FreeBSD operating system....
 distribution system), lftp
Lftp

lftp is a Command-line interface file transfer program for Unix and Unix-like systems. It was written by Alexander Lukyanov, and is made available under the GNU General Public License....
 (a sophisticated file transfer program) and LWPng (libwww-perl New Generation) library.

External links