Examine individual changes
Appearance
This page allows you to examine the variables generated by the Edit Filter for an individual change.
Variables generated for this change
Variable | Value |
---|---|
Edit count of the user (user_editcount ) | null |
Name of the user account (user_name ) | '14.137.200.63' |
Age of the user account (user_age ) | 0 |
Groups (including implicit) the user is in (user_groups ) | [
0 => '*'
] |
Rights that the user has (user_rights ) | [
0 => 'createaccount',
1 => 'read',
2 => 'edit',
3 => 'createtalk',
4 => 'writeapi',
5 => 'viewmywatchlist',
6 => 'editmywatchlist',
7 => 'viewmyprivateinfo',
8 => 'editmyprivateinfo',
9 => 'editmyoptions',
10 => 'abusefilter-log-detail',
11 => 'centralauth-merge',
12 => 'abusefilter-view',
13 => 'abusefilter-log',
14 => 'vipsscaler-test'
] |
Whether the user is editing from mobile app (user_app ) | false |
Whether or not a user is editing through the mobile interface (user_mobile ) | true |
Page ID (page_id ) | 1218572 |
Page namespace (page_namespace ) | 0 |
Page title without namespace (page_title ) | 'HTTP pipelining' |
Full page title (page_prefixedtitle ) | 'HTTP pipelining' |
Edit protection level of the page (page_restrictions_edit ) | [] |
Last ten users to contribute to the page (page_recent_contributors ) | [
0 => 'Tom.Reding',
1 => 'WikiCleanerBot',
2 => 'InternetArchiveBot',
3 => 'AnomieBOT',
4 => 'Kuru',
5 => 'CarlaChristo',
6 => '91.228.164.26',
7 => '60.49.74.73',
8 => 'Comp.arch',
9 => 'KolbertBot'
] |
Page age in seconds (page_age ) | 511244032 |
Action (action ) | 'edit' |
Edit summary/reason (summary ) | '' |
Old content model (old_content_model ) | 'wikitext' |
New content model (new_content_model ) | 'wikitext' |
Old page wikitext, before the edit (old_wikitext ) | '[[File:HTTP pipelining2.svg|thumb|right|300px|Time diagram of non-pipelined vs. pipelined connection]]
{{HTTP}}
'''HTTP pipelining''' is a technique in which multiple [[HTTP]] requests are sent on a single [[Transmission Control Protocol|TCP]] (transmission control protocol) connection without waiting for the corresponding responses.<ref name="pipeline">{{cite web|url=http://tools.ietf.org/html/rfc7230#section-6.3.2|title=Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing|publisher=ietf.org|accessdate=2014-07-24}}</ref>
The technique was superseded by multiplexing via [[HTTP/2]],<ref name=":0">{{Cite web|url=https://developer.mozilla.org/en-US/docs/Web/HTTP/Connection_management_in_HTTP_1.x$revision/1330814|title=Revision 1330814 {{!}} Connection management in HTTP/1.x {{!}} MDN|website=MDN Web Docs|language=en-US|access-date=2018-03-19}}</ref> which is supported by most modern browsers.<ref name="browser_support">{{cite web|url=http://caniuse.com/#search=http2|title=HTTP2 browser support|accessdate=March 9, 2017}}</ref>
As of 2018, HTTP pipelining is not enabled by default in modern browsers, due to several issues including buggy [[proxy server]]s and [[Head-of-line blocking|HOL blocking]].<ref name=":0" />
==Motivation and limitations==
The pipelining of requests results in a dramatic improvement<ref>{{cite web|url=http://www.w3.org/Protocols/HTTP/Performance/Pipeline.html|title=Network Performance Effects of HTTP/1.1, CSS1, and PNG|publisher=World Wide Web Consortium|accessdate=14 January 2010|date=24 June 1997|first1=Henrik Frystyk|last1=Nielsen|authorlink1=Henrik Frystyk Nielsen|first2=Jim|last2=Gettys|authorlink2=Jim Gettys|first3=Anselm|last3=Baird-Smith|first4=Eric|last4=Prud'hommeaux|first5=Håkon Wium|last5=Lie|authorlink5=Håkon Wium Lie|first6=Chris|last6=Lilley|authorlink6=Chris Lilley (computer scientist)}}</ref> in the loading times of HTML pages, especially over high [[Lag|latency]] connections such as [[Satellite Internet|satellite Internet connection]]s. The speedup is less apparent on broadband connections, as the limitation of HTTP 1.1 still applies: the server must send its responses in the same order that the requests were received—so the entire connection remains [[FIFO and LIFO accounting|first-in-first-out]]<ref name="pipeline" /> and [[Head-of-line blocking|HOL blocking]] can occur. The asynchronous operation of [[HTTP/2]] and [[SPDY]] are solutions for this.<ref name="lwnspdy">{{cite web|url=https://lwn.net/Articles/362473/|title=Reducing HTTP latency with SPDY|first=Nathan|last=Willis|date=18 November 2009|publisher=[[LWN.net]]}}</ref> Browsers ultimately did not enable pipelining by default, and by 2017 most browsers supported HTTP/2 by default which used multiplexing instead.<ref name=":0" />
Non-[[idempotence (computer science)#Examples|idempotent]] requests, like those using [[POST (HTTP)|POST]], should not be pipelined.<ref name="non-idempotent">{{cite web|url=http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html|title=Connections|publisher=[[w3.org]]}}</ref> Sequences of GET and HEAD requests can always be pipelined. A sequence of other idempotent requests like PUT and DELETE can be pipelined or not depending on whether requests in the sequence depend on the effect of others.<ref name="pipeline"/>
HTTP pipelining requires both the client and the server to support it. [[Hypertext Transfer Protocol|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.<ref>{{cite web|url=https://www-archive.mozilla.org/projects/netlib/http/pipelining-faq.html|title=HTTP/1.1 Pipelining FAQ'}}</ref>
{{Clear left}}
==Implementation status==
Pipelining was introduced in HTTP/1.1 and was not present in HTTP/1.0.<ref>{{Cite web |url=http://www8.org/w8-papers/5c-protocols/key/key.html |title=Archived copy |access-date=2016-04-16 |archive-url=https://web.archive.org/web/20160424204340/http://www8.org/w8-papers/5c-protocols/key/key.html |archive-date=2016-04-24 |url-status=dead }}</ref>
===Implementation in web servers===
Implementing pipelining in [[web server]]s 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.
===Implementation in web browsers===
Of all the major browsers, only [[Opera (web browser)|Opera]] based on [[Presto (layout engine)|Presto]] layout engine had a fully working implementation that was enabled by default. In all other browsers HTTP pipelining is disabled or not implemented.<ref name="lwnspdy"/>
*[[Internet Explorer 8]] does not pipeline requests, due to concerns regarding buggy proxies and [[head-of-line blocking]].<ref>{{cite web|url=http://www.microsoft.com/windowsxp/expertzone/chats/transcripts/08_0814_ez_ie8.mspx|title=Wayback link of 'Windows Internet Explorer 8 Expert Zone Chat (August 14, 2008)'|date=August 14, 2008|publisher=[[Microsoft]]|accessdate=May 10, 2012|archive-url=https://web.archive.org/web/20101204053757/http://www.microsoft.com/windowsxp/expertzone/chats/transcripts/08_0814_ez_ie8.mspx|archive-date=December 4, 2010|url-status=dead}}</ref>
*[[Internet Explorer 11]] does not support pipelining.<ref>{{Cite news|url=https://blogs.msdn.microsoft.com/ie/2005/04/11/internet-explorer-and-connection-limits/|title=Internet Explorer and Connection Limits|newspaper=IEBlog|access-date=2016-11-14}}</ref>
*Mozilla browsers (such as [[Mozilla Firefox]], [[SeaMonkey]] and [[Camino (web browser)|Camino]]) support pipelining; however, it is disabled by default.<ref>[http://kb.mozillazine.org/Network.http.pipelining Pipelining Network] [[MozillaZine]]</ref><ref>{{cite book|title=Firefox secrets|author=Cheah Chu Yeow|page=[https://archive.org/details/firefoxsecrets0000chea/page/180 180]|isbn=0-9752402-4-2|url-access=registration|url=https://archive.org/details/firefoxsecrets0000chea/page/180}}</ref> Pipelining is disabled by default to avoid issues with misbehaving servers.<ref>{{cite web|url= https://bugzilla.mozilla.org/show_bug.cgi?id=264354|title=Bug 264354: Enable HTTP pipelining by default|publisher=[[Mozilla]]|accessdate=September 16, 2011}}</ref> When pipelining is enabled, Mozilla browsers use some heuristics, especially to turn pipelining off for older [[Internet Information Services|IIS]] servers.<ref>{{cite web|url=https://hg.mozilla.org/releases/mozilla-2.0/file/09565753ce5f/netwerk/protocol/http/src/nsHttpConnection.cpp#l251|title=Source code – nsHttpConnection.cpp|publisher=Mozilla|work=Firefox source code|date=May 7, 2010|accessdate=December 5, 2010}}</ref> Support for H1 Pipeline was removed from Mozilla Firefox in Version 54.<ref>{{cite web|url= https://bugzilla.mozilla.org/show_bug.cgi?id=1340655|title=Bug 1340655: Remove H1 Pipeline Support|publisher=[[Mozilla]]|accessdate=March 22, 2017}}</ref>
*[[Konqueror]] 2.0 supports pipelining, but disabled by default.{{citation needed|date=May 2019}}
*[[Google Chrome]] previously supported pipelining, but it has been disabled due to bugs and problems with poorly behaving servers.<ref>[https://www.chromium.org/developers/design-documents/network-stack/http-pipelining HTTP Pipelining - The Chromium Projects]</ref>
*[[Pale Moon (web browser)]] supports pipelining, and is enabled by default<ref>{{Cite web|url=https://forum.palemoon.org/viewtopic.php?f=5&t=16869&p=123455|title=HTTP/1 Pipelining support has been removed in Firefox 54 - Pale Moon forum|website=forum.palemoon.org|language=en-us|access-date=2018-06-07}}</ref>
===Implementation in web proxies===
Most HTTP proxies do not pipeline outgoing requests.<ref>{{cite web|url= http://www.mnot.net/blog/2007/06/20/proxy_caching|title=The State of Proxy Caching|date=June 20, 2007|author=Mark Nottingham|author-link=Mark Nottingham|accessdate= May 16, 2009}}</ref>
Some versions of the [[Squid (software)|Squid]] web proxy will pipeline up to two outgoing requests. This functionality has been disabled by default and needs to be manually enabled for "bandwidth management and access logging reasons."<ref>{{cite web|url=http://www.squid-cache.org/Doc/config/pipeline_prefetch/|title=squid : pipeline_prefetch configuration directive|date=November 9, 2009|publisher=[[Squid (software)|Squid]]|accessdate=December 1, 2009}}</ref> Squid supports multiple requests from clients.
The [[Polipo]] proxy pipelines outgoing requests.<ref>{{cite web|url= http://www.pps.jussieu.fr/~jch/software/polipo/|title=Polipo — a caching web proxy|date=September 18, 2009|publisher=Juliusz Chroboczek|accessdate=November 12, 2009}}</ref>
Tempesta FW, an open source [[application delivery controller]],<ref>{{cite web|url= https://github.com/tempesta-tech/tempesta|title=Tempesta FW — a Linux Application Delivery Controller|publisher=GitHub|accessdate=March 29, 2018}}</ref> also pipelines requests to backend servers.<ref>{{cite web|url= https://github.com/tempesta-tech/tempesta/wiki/Servers:-Tempesta's-side|title=Servers: Tempesta's side - tempesta-tech/tempesta Wiki|date=August 1, 2017|publisher=Tempesta Technologies INC|accessdate=March 29, 2018}}</ref>
===Other implementations===
The [[libwww]] [[library (computing)|library]] made by the [[World Wide Web Consortium]] (W3C), supports pipelining since version 5.1 released at 18 February 1997.<ref>{{cite web|last=Kahan|first=José|title=Change History of libwww|url=http://www.w3.org/Library/User/History.html |publisher=[[World Wide Web Consortium]]|accessdate=August 3, 2010|date= June 7, 2002}}</ref>
Other application development libraries that support HTTP pipelining include:
*Perl modules providing client support for HTTP pipelining are HTTP::Async and the LWPng ([[libwww-perl]] New Generation) library.<ref>{{Cite web |url=http://miltonkeynes.pm.org/talks/2010/02/colin_bradford_http_async.pdf |title=Using HTTP::Async for Parallel HTTP Requests (Colin Bradford) |access-date=2010-08-03 |archive-url=https://web.archive.org/web/20120310042434/http://miltonkeynes.pm.org/talks/2010/02/colin_bradford_http_async.pdf |archive-date=2012-03-10 |url-status=dead }}</ref>
*[[Apache Foundation]] project [[HttpComponents]] provides pipelining support in the HttpCore NIO extensions.
*The Microsoft [[.NET Framework]] 3.5 supports HTTP pipelining in the module <code>System.Net.HttpWebRequest</code>.<ref>[http://blogs.msdn.com/b/mflasko/archive/2006/07/17/669293.aspx System.Net.HttpWebRequest & pipelining]</ref>
*[[Qt (framework)|Qt]] class <code>QNetworkRequest</code>, introduced in 4.4.<ref>[http://doc.qt.nokia.com/4.6/qnetworkrequest.html QNetworkRequest Class Reference] {{webarchive|url=https://web.archive.org/web/20091222054207/http://doc.qt.nokia.com/4.6/qnetworkrequest.html |date=2009-12-22 }}, Nokia QT documentation</ref>
Some other applications currently exploiting pipelining are:
*IceBreak application server since BUILD389
*phttpget from [[FreeBSD]] (a minimalist pipelined HTTP client)<ref>[http://www.daemonology.net/phttpget/ Pipelined HTTP GET utility]</ref>
*[[libcurl]] has limited support for pipelining using the CURLMOPT_PIPELINING option.<ref>[http://curl.haxx.se/dev/readme-pipelining.html Curl pipelining explanation] {{webarchive|url=https://web.archive.org/web/20120627181619/http://curl.haxx.se/dev/readme-pipelining.html |date=2012-06-27 }}, Curl developer documentation</ref>
*[[portsnap]] (a [[FreeBSD]] [[FreeBSD Ports|ports tree]] distribution system)
*[[Advanced Packaging Tool]] (APT) support pipelining.{{Citation needed|date=August 2010}}
*[[Apache Subversion|Subversion]] (SVN) has optional support for HTTP pipelining with the [[serf (library)|serf]] WebDAV access module (the default module, [[neon (library)|neon]] does not have pipelining support).<ref>{{cite book | title = Version Control with Subversion|author1=C. Michael Pilato |author2=Ben Collins-Sussman |author3=Brian W. Fitzpatrick |page=238|publisher=[[O'Reilly Media]]|year=2008|isbn=0-596-51033-0}}</ref><ref>{{cite web|url=http://www.erenkrantz.com/oscon/OSCON%202007%20Subversion%20New%20Toys.pdf|title=Subversion: Powerful New Toys|author=Justin R. Erenkrantz|year=2007}}</ref>
*[[Microsoft Message Queuing]] on [[Windows Server 2003]] utilises pipelining on HTTP by default, and can be configured to use it on HTTPS.<ref>{{cite web|url= https://technet.microsoft.com/en-us/library/cc737394%28WS.10%29.aspx|title= HTTP/HTTPS messages|publisher=[[Microsoft TechNet]]|date=January 21, 2005}}</ref>
*IBM [[CICS]] 3.1 supports HTTP pipelining within its client.<ref>[http://publib.boulder.ibm.com/infocenter/cicsts/v3r1/index.jsp?topic=/com.ibm.cics.ts31.doc/dfhtl/topics/dfhtl_cwspipelining.htm How CICS Web support handles pipelining]</ref>
[[Multipart XHR]] is implementation of pipelining (without any browser or web server support) done purely in JavaScript in combination with server-side scripting.{{Citation needed|date=August 2010}}
Testing tools which support HTTP pipelining include:
*[[httperf]]<ref>{{Cite web |url=http://www.hpl.hp.com/research/linux/httperf/ |title=HTTP Website |access-date=2010-10-01 |archive-url=https://web.archive.org/web/20120608143409/http://www.hpl.hp.com/research/linux/httperf/ |archive-date=2012-06-08 |url-status=dead }}</ref>
==See also==
*[[HTTP persistent connection]]
*[[WebSocket]]
*[[SPDY]]
==References==
{{Reflist}}
==External links==
*RFC 7230 {{cite web|url=http://tools.ietf.org/html/rfc7230#section-6.3.2|title=Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing|publisher=ietf.org|accessdate=2014-07-24}}
*[https://www.mozilla.org/projects/netlib/http/pipelining-faq.html HTTP/1.1 Pipelining FAQ at mozilla.org]
*[https://www.w3.org/Protocols/HTTP/Performance/Pipeline.html "Network Performance Effects of HTTP/1.1, CSS1, and PNG" at w3.org]
*[https://www.die.net/musings/page_load_time/ "Optimizing Page Load Times" article]
*[https://www.daemonology.net/phttpget/ phttpget]
*[https://code.google.com/p/serf/ serf] C library
{{DEFAULTSORT:Http Pipelining}}
[[Category:Hypertext Transfer Protocol]]' |
New page wikitext, after the edit (new_wikitext ) | 'Hh
==Motivation and limitations==
The pipelining of requests results in a dramatic improvement<ref>{{cite web|url=http://www.w3.org/Protocols/HTTP/Performance/Pipeline.html|title=Network Performance Effects of HTTP/1.1, CSS1, and PNG|publisher=World Wide Web Consortium|accessdate=14 January 2010|date=24 June 1997|first1=Henrik Frystyk|last1=Nielsen|authorlink1=Henrik Frystyk Nielsen|first2=Jim|last2=Gettys|authorlink2=Jim Gettys|first3=Anselm|last3=Baird-Smith|first4=Eric|last4=Prud'hommeaux|first5=Håkon Wium|last5=Lie|authorlink5=Håkon Wium Lie|first6=Chris|last6=Lilley|authorlink6=Chris Lilley (computer scientist)}}</ref> in the loading times of HTML pages, especially over high [[Lag|latency]] connections such as [[Satellite Internet|satellite Internet connection]]s. The speedup is less apparent on broadband connections, as the limitation of HTTP 1.1 still applies: the server must send its responses in the same order that the requests were received—so the entire connection remains [[FIFO and LIFO accounting|first-in-first-out]]<ref name="pipeline" /> and [[Head-of-line blocking|HOL blocking]] can occur. The asynchronous operation of [[HTTP/2]] and [[SPDY]] are solutions for this.<ref name="lwnspdy">{{cite web|url=https://lwn.net/Articles/362473/|title=Reducing HTTP latency with SPDY|first=Nathan|last=Willis|date=18 November 2009|publisher=[[LWN.net]]}}</ref> Browsers ultimately did not enable pipelining by default, and by 2017 most browsers supported HTTP/2 by default which used multiplexing instead.<ref name=":0" />
Non-[[idempotence (computer science)#Examples|idempotent]] requests, like those using [[POST (HTTP)|POST]], should not be pipelined.<ref name="non-idempotent">{{cite web|url=http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html|title=Connections|publisher=[[w3.org]]}}</ref> Sequences of GET and HEAD requests can always be pipelined. A sequence of other idempotent requests like PUT and DELETE can be pipelined or not depending on whether requests in the sequence depend on the effect of others.<ref name="pipeline"/>
HTTP pipelining requires both the client and the server to support it. [[Hypertext Transfer Protocol|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.<ref>{{cite web|url=https://www-archive.mozilla.org/projects/netlib/http/pipelining-faq.html|title=HTTP/1.1 Pipelining FAQ'}}</ref>
{{Clear left}}
==Implementation status==
Pipelining was introduced in HTTP/1.1 and was not present in HTTP/1.0.<ref>{{Cite web |url=http://www8.org/w8-papers/5c-protocols/key/key.html |title=Archived copy |access-date=2016-04-16 |archive-url=https://web.archive.org/web/20160424204340/http://www8.org/w8-papers/5c-protocols/key/key.html |archive-date=2016-04-24 |url-status=dead }}</ref>
===Implementation in web servers===
Implementing pipelining in [[web server]]s 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.
===Implementation in web browsers===
Of all the major browsers, only [[Opera (web browser)|Opera]] based on [[Presto (layout engine)|Presto]] layout engine had a fully working implementation that was enabled by default. In all other browsers HTTP pipelining is disabled or not implemented.<ref name="lwnspdy"/>
*[[Internet Explorer 8]] does not pipeline requests, due to concerns regarding buggy proxies and [[head-of-line blocking]].<ref>{{cite web|url=http://www.microsoft.com/windowsxp/expertzone/chats/transcripts/08_0814_ez_ie8.mspx|title=Wayback link of 'Windows Internet Explorer 8 Expert Zone Chat (August 14, 2008)'|date=August 14, 2008|publisher=[[Microsoft]]|accessdate=May 10, 2012|archive-url=https://web.archive.org/web/20101204053757/http://www.microsoft.com/windowsxp/expertzone/chats/transcripts/08_0814_ez_ie8.mspx|archive-date=December 4, 2010|url-status=dead}}</ref>
*[[Internet Explorer 11]] does not support pipelining.<ref>{{Cite news|url=https://blogs.msdn.microsoft.com/ie/2005/04/11/internet-explorer-and-connection-limits/|title=Internet Explorer and Connection Limits|newspaper=IEBlog|access-date=2016-11-14}}</ref>
*Mozilla browsers (such as [[Mozilla Firefox]], [[SeaMonkey]] and [[Camino (web browser)|Camino]]) support pipelining; however, it is disabled by default.<ref>[http://kb.mozillazine.org/Network.http.pipelining Pipelining Network] [[MozillaZine]]</ref><ref>{{cite book|title=Firefox secrets|author=Cheah Chu Yeow|page=[https://archive.org/details/firefoxsecrets0000chea/page/180 180]|isbn=0-9752402-4-2|url-access=registration|url=https://archive.org/details/firefoxsecrets0000chea/page/180}}</ref> Pipelining is disabled by default to avoid issues with misbehaving servers.<ref>{{cite web|url= https://bugzilla.mozilla.org/show_bug.cgi?id=264354|title=Bug 264354: Enable HTTP pipelining by default|publisher=[[Mozilla]]|accessdate=September 16, 2011}}</ref> When pipelining is enabled, Mozilla browsers use some heuristics, especially to turn pipelining off for older [[Internet Information Services|IIS]] servers.<ref>{{cite web|url=https://hg.mozilla.org/releases/mozilla-2.0/file/09565753ce5f/netwerk/protocol/http/src/nsHttpConnection.cpp#l251|title=Source code – nsHttpConnection.cpp|publisher=Mozilla|work=Firefox source code|date=May 7, 2010|accessdate=December 5, 2010}}</ref> Support for H1 Pipeline was removed from Mozilla Firefox in Version 54.<ref>{{cite web|url= https://bugzilla.mozilla.org/show_bug.cgi?id=1340655|title=Bug 1340655: Remove H1 Pipeline Support|publisher=[[Mozilla]]|accessdate=March 22, 2017}}</ref>
*[[Konqueror]] 2.0 supports pipelining, but disabled by default.{{citation needed|date=May 2019}}
*[[Google Chrome]] previously supported pipelining, but it has been disabled due to bugs and problems with poorly behaving servers.<ref>[https://www.chromium.org/developers/design-documents/network-stack/http-pipelining HTTP Pipelining - The Chromium Projects]</ref>
*[[Pale Moon (web browser)]] supports pipelining, and is enabled by default<ref>{{Cite web|url=https://forum.palemoon.org/viewtopic.php?f=5&t=16869&p=123455|title=HTTP/1 Pipelining support has been removed in Firefox 54 - Pale Moon forum|website=forum.palemoon.org|language=en-us|access-date=2018-06-07}}</ref>
===Implementation in web proxies===
Most HTTP proxies do not pipeline outgoing requests.<ref>{{cite web|url= http://www.mnot.net/blog/2007/06/20/proxy_caching|title=The State of Proxy Caching|date=June 20, 2007|author=Mark Nottingham|author-link=Mark Nottingham|accessdate= May 16, 2009}}</ref>
Some versions of the [[Squid (software)|Squid]] web proxy will pipeline up to two outgoing requests. This functionality has been disabled by default and needs to be manually enabled for "bandwidth management and access logging reasons."<ref>{{cite web|url=http://www.squid-cache.org/Doc/config/pipeline_prefetch/|title=squid : pipeline_prefetch configuration directive|date=November 9, 2009|publisher=[[Squid (software)|Squid]]|accessdate=December 1, 2009}}</ref> Squid supports multiple requests from clients.
The [[Polipo]] proxy pipelines outgoing requests.<ref>{{cite web|url= http://www.pps.jussieu.fr/~jch/software/polipo/|title=Polipo — a caching web proxy|date=September 18, 2009|publisher=Juliusz Chroboczek|accessdate=November 12, 2009}}</ref>
Tempesta FW, an open source [[application delivery controller]],<ref>{{cite web|url= https://github.com/tempesta-tech/tempesta|title=Tempesta FW — a Linux Application Delivery Controller|publisher=GitHub|accessdate=March 29, 2018}}</ref> also pipelines requests to backend servers.<ref>{{cite web|url= https://github.com/tempesta-tech/tempesta/wiki/Servers:-Tempesta's-side|title=Servers: Tempesta's side - tempesta-tech/tempesta Wiki|date=August 1, 2017|publisher=Tempesta Technologies INC|accessdate=March 29, 2018}}</ref>
===Other implementations===
The [[libwww]] [[library (computing)|library]] made by the [[World Wide Web Consortium]] (W3C), supports pipelining since version 5.1 released at 18 February 1997.<ref>{{cite web|last=Kahan|first=José|title=Change History of libwww|url=http://www.w3.org/Library/User/History.html |publisher=[[World Wide Web Consortium]]|accessdate=August 3, 2010|date= June 7, 2002}}</ref>
Other application development libraries that support HTTP pipelining include:
*Perl modules providing client support for HTTP pipelining are HTTP::Async and the LWPng ([[libwww-perl]] New Generation) library.<ref>{{Cite web |url=http://miltonkeynes.pm.org/talks/2010/02/colin_bradford_http_async.pdf |title=Using HTTP::Async for Parallel HTTP Requests (Colin Bradford) |access-date=2010-08-03 |archive-url=https://web.archive.org/web/20120310042434/http://miltonkeynes.pm.org/talks/2010/02/colin_bradford_http_async.pdf |archive-date=2012-03-10 |url-status=dead }}</ref>
*[[Apache Foundation]] project [[HttpComponents]] provides pipelining support in the HttpCore NIO extensions.
*The Microsoft [[.NET Framework]] 3.5 supports HTTP pipelining in the module <code>System.Net.HttpWebRequest</code>.<ref>[http://blogs.msdn.com/b/mflasko/archive/2006/07/17/669293.aspx System.Net.HttpWebRequest & pipelining]</ref>
*[[Qt (framework)|Qt]] class <code>QNetworkRequest</code>, introduced in 4.4.<ref>[http://doc.qt.nokia.com/4.6/qnetworkrequest.html QNetworkRequest Class Reference] {{webarchive|url=https://web.archive.org/web/20091222054207/http://doc.qt.nokia.com/4.6/qnetworkrequest.html |date=2009-12-22 }}, Nokia QT documentation</ref>
Some other applications currently exploiting pipelining are:
*IceBreak application server since BUILD389
*phttpget from [[FreeBSD]] (a minimalist pipelined HTTP client)<ref>[http://www.daemonology.net/phttpget/ Pipelined HTTP GET utility]</ref>
*[[libcurl]] has limited support for pipelining using the CURLMOPT_PIPELINING option.<ref>[http://curl.haxx.se/dev/readme-pipelining.html Curl pipelining explanation] {{webarchive|url=https://web.archive.org/web/20120627181619/http://curl.haxx.se/dev/readme-pipelining.html |date=2012-06-27 }}, Curl developer documentation</ref>
*[[portsnap]] (a [[FreeBSD]] [[FreeBSD Ports|ports tree]] distribution system)
*[[Advanced Packaging Tool]] (APT) support pipelining.{{Citation needed|date=August 2010}}
*[[Apache Subversion|Subversion]] (SVN) has optional support for HTTP pipelining with the [[serf (library)|serf]] WebDAV access module (the default module, [[neon (library)|neon]] does not have pipelining support).<ref>{{cite book | title = Version Control with Subversion|author1=C. Michael Pilato |author2=Ben Collins-Sussman |author3=Brian W. Fitzpatrick |page=238|publisher=[[O'Reilly Media]]|year=2008|isbn=0-596-51033-0}}</ref><ref>{{cite web|url=http://www.erenkrantz.com/oscon/OSCON%202007%20Subversion%20New%20Toys.pdf|title=Subversion: Powerful New Toys|author=Justin R. Erenkrantz|year=2007}}</ref>
*[[Microsoft Message Queuing]] on [[Windows Server 2003]] utilises pipelining on HTTP by default, and can be configured to use it on HTTPS.<ref>{{cite web|url= https://technet.microsoft.com/en-us/library/cc737394%28WS.10%29.aspx|title= HTTP/HTTPS messages|publisher=[[Microsoft TechNet]]|date=January 21, 2005}}</ref>
*IBM [[CICS]] 3.1 supports HTTP pipelining within its client.<ref>[http://publib.boulder.ibm.com/infocenter/cicsts/v3r1/index.jsp?topic=/com.ibm.cics.ts31.doc/dfhtl/topics/dfhtl_cwspipelining.htm How CICS Web support handles pipelining]</ref>
[[Multipart XHR]] is implementation of pipelining (without any browser or web server support) done purely in JavaScript in combination with server-side scripting.{{Citation needed|date=August 2010}}
Testing tools which support HTTP pipelining include:
*[[httperf]]<ref>{{Cite web |url=http://www.hpl.hp.com/research/linux/httperf/ |title=HTTP Website |access-date=2010-10-01 |archive-url=https://web.archive.org/web/20120608143409/http://www.hpl.hp.com/research/linux/httperf/ |archive-date=2012-06-08 |url-status=dead }}</ref>
==See also==
*[[HTTP persistent connection]]
*[[WebSocket]]
*[[SPDY]]
==References==
{{Reflist}}
==External links==
*RFC 7230 {{cite web|url=http://tools.ietf.org/html/rfc7230#section-6.3.2|title=Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing|publisher=ietf.org|accessdate=2014-07-24}}
*[https://www.mozilla.org/projects/netlib/http/pipelining-faq.html HTTP/1.1 Pipelining FAQ at mozilla.org]
*[https://www.w3.org/Protocols/HTTP/Performance/Pipeline.html "Network Performance Effects of HTTP/1.1, CSS1, and PNG" at w3.org]
*[https://www.die.net/musings/page_load_time/ "Optimizing Page Load Times" article]
*[https://www.daemonology.net/phttpget/ phttpget]
*[https://code.google.com/p/serf/ serf] C library
{{DEFAULTSORT:Http Pipelining}}
[[Category:Hypertext Transfer Protocol]]' |
Unified diff of changes made by edit (edit_diff ) | '@@ -1,9 +1,3 @@
-[[File:HTTP pipelining2.svg|thumb|right|300px|Time diagram of non-pipelined vs. pipelined connection]]
-{{HTTP}}
-'''HTTP pipelining''' is a technique in which multiple [[HTTP]] requests are sent on a single [[Transmission Control Protocol|TCP]] (transmission control protocol) connection without waiting for the corresponding responses.<ref name="pipeline">{{cite web|url=http://tools.ietf.org/html/rfc7230#section-6.3.2|title=Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing|publisher=ietf.org|accessdate=2014-07-24}}</ref>
-
-The technique was superseded by multiplexing via [[HTTP/2]],<ref name=":0">{{Cite web|url=https://developer.mozilla.org/en-US/docs/Web/HTTP/Connection_management_in_HTTP_1.x$revision/1330814|title=Revision 1330814 {{!}} Connection management in HTTP/1.x {{!}} MDN|website=MDN Web Docs|language=en-US|access-date=2018-03-19}}</ref> which is supported by most modern browsers.<ref name="browser_support">{{cite web|url=http://caniuse.com/#search=http2|title=HTTP2 browser support|accessdate=March 9, 2017}}</ref>
-
-As of 2018, HTTP pipelining is not enabled by default in modern browsers, due to several issues including buggy [[proxy server]]s and [[Head-of-line blocking|HOL blocking]].<ref name=":0" />
+Hh
==Motivation and limitations==
' |
New page size (new_size ) | 12901 |
Old page size (old_size ) | 14144 |
Size change in edit (edit_delta ) | -1243 |
Lines added in edit (added_lines ) | [
0 => 'Hh'
] |
Lines removed in edit (removed_lines ) | [
0 => '[[File:HTTP pipelining2.svg|thumb|right|300px|Time diagram of non-pipelined vs. pipelined connection]]',
1 => '{{HTTP}}',
2 => ''''HTTP pipelining''' is a technique in which multiple [[HTTP]] requests are sent on a single [[Transmission Control Protocol|TCP]] (transmission control protocol) connection without waiting for the corresponding responses.<ref name="pipeline">{{cite web|url=http://tools.ietf.org/html/rfc7230#section-6.3.2|title=Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing|publisher=ietf.org|accessdate=2014-07-24}}</ref>',
3 => '',
4 => 'The technique was superseded by multiplexing via [[HTTP/2]],<ref name=":0">{{Cite web|url=https://developer.mozilla.org/en-US/docs/Web/HTTP/Connection_management_in_HTTP_1.x$revision/1330814|title=Revision 1330814 {{!}} Connection management in HTTP/1.x {{!}} MDN|website=MDN Web Docs|language=en-US|access-date=2018-03-19}}</ref> which is supported by most modern browsers.<ref name="browser_support">{{cite web|url=http://caniuse.com/#search=http2|title=HTTP2 browser support|accessdate=March 9, 2017}}</ref>',
5 => '',
6 => 'As of 2018, HTTP pipelining is not enabled by default in modern browsers, due to several issues including buggy [[proxy server]]s and [[Head-of-line blocking|HOL blocking]].<ref name=":0" />'
] |
All external links added in the edit (added_links ) | [] |
All external links removed in the edit (removed_links ) | [
0 => 'http://caniuse.com/#search=http2',
1 => 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Connection_management_in_HTTP_1.x$revision/1330814'
] |
All external links in the new text (all_links ) | [
0 => 'http://www.w3.org/Protocols/HTTP/Performance/Pipeline.html',
1 => 'https://lwn.net/Articles/362473/',
2 => 'http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html',
3 => 'https://www-archive.mozilla.org/projects/netlib/http/pipelining-faq.html',
4 => 'https://web.archive.org/web/20160424204340/http://www8.org/w8-papers/5c-protocols/key/key.html',
5 => 'http://www8.org/w8-papers/5c-protocols/key/key.html',
6 => 'https://web.archive.org/web/20101204053757/http://www.microsoft.com/windowsxp/expertzone/chats/transcripts/08_0814_ez_ie8.mspx',
7 => 'http://www.microsoft.com/windowsxp/expertzone/chats/transcripts/08_0814_ez_ie8.mspx',
8 => 'https://blogs.msdn.microsoft.com/ie/2005/04/11/internet-explorer-and-connection-limits/',
9 => 'http://kb.mozillazine.org/Network.http.pipelining',
10 => 'https://archive.org/details/firefoxsecrets0000chea/page/180',
11 => 'https://bugzilla.mozilla.org/show_bug.cgi?id=264354',
12 => 'https://hg.mozilla.org/releases/mozilla-2.0/file/09565753ce5f/netwerk/protocol/http/src/nsHttpConnection.cpp#l251',
13 => 'https://bugzilla.mozilla.org/show_bug.cgi?id=1340655',
14 => 'https://www.chromium.org/developers/design-documents/network-stack/http-pipelining',
15 => 'https://forum.palemoon.org/viewtopic.php?f=5&t=16869&p=123455',
16 => 'http://www.mnot.net/blog/2007/06/20/proxy_caching',
17 => 'http://www.squid-cache.org/Doc/config/pipeline_prefetch/',
18 => 'http://www.pps.jussieu.fr/~jch/software/polipo/',
19 => 'https://github.com/tempesta-tech/tempesta',
20 => 'https://github.com/tempesta-tech/tempesta/wiki/Servers:-Tempesta's-side',
21 => 'http://www.w3.org/Library/User/History.html',
22 => 'https://web.archive.org/web/20120310042434/http://miltonkeynes.pm.org/talks/2010/02/colin_bradford_http_async.pdf',
23 => 'http://miltonkeynes.pm.org/talks/2010/02/colin_bradford_http_async.pdf',
24 => 'http://blogs.msdn.com/b/mflasko/archive/2006/07/17/669293.aspx',
25 => 'http://doc.qt.nokia.com/4.6/qnetworkrequest.html',
26 => 'https://web.archive.org/web/20091222054207/http://doc.qt.nokia.com/4.6/qnetworkrequest.html',
27 => 'http://www.daemonology.net/phttpget/',
28 => 'http://curl.haxx.se/dev/readme-pipelining.html',
29 => 'https://web.archive.org/web/20120627181619/http://curl.haxx.se/dev/readme-pipelining.html',
30 => 'http://www.erenkrantz.com/oscon/OSCON%202007%20Subversion%20New%20Toys.pdf',
31 => 'https://technet.microsoft.com/en-us/library/cc737394(WS.10).aspx',
32 => 'http://publib.boulder.ibm.com/infocenter/cicsts/v3r1/index.jsp?topic=/com.ibm.cics.ts31.doc/dfhtl/topics/dfhtl_cwspipelining.htm',
33 => 'https://web.archive.org/web/20120608143409/http://www.hpl.hp.com/research/linux/httperf/',
34 => 'http://www.hpl.hp.com/research/linux/httperf/',
35 => 'http://tools.ietf.org/html/rfc7230#section-6.3.2',
36 => 'https://www.mozilla.org/projects/netlib/http/pipelining-faq.html',
37 => 'https://www.w3.org/Protocols/HTTP/Performance/Pipeline.html',
38 => 'https://www.die.net/musings/page_load_time/',
39 => 'https://www.daemonology.net/phttpget/',
40 => 'https://code.google.com/p/serf/'
] |
Links in the page, before the edit (old_links ) | [
0 => 'http://blogs.msdn.com/b/mflasko/archive/2006/07/17/669293.aspx',
1 => 'http://caniuse.com/#search=http2',
2 => 'http://curl.haxx.se/dev/readme-pipelining.html',
3 => 'http://doc.qt.nokia.com/4.6/qnetworkrequest.html',
4 => 'http://kb.mozillazine.org/Network.http.pipelining',
5 => 'http://miltonkeynes.pm.org/talks/2010/02/colin_bradford_http_async.pdf',
6 => 'http://publib.boulder.ibm.com/infocenter/cicsts/v3r1/index.jsp?topic=/com.ibm.cics.ts31.doc/dfhtl/topics/dfhtl_cwspipelining.htm',
7 => 'http://tools.ietf.org/html/rfc7230#section-6.3.2',
8 => 'http://www.daemonology.net/phttpget/',
9 => 'http://www.erenkrantz.com/oscon/OSCON%202007%20Subversion%20New%20Toys.pdf',
10 => 'http://www.hpl.hp.com/research/linux/httperf/',
11 => 'http://www.microsoft.com/windowsxp/expertzone/chats/transcripts/08_0814_ez_ie8.mspx',
12 => 'http://www.mnot.net/blog/2007/06/20/proxy_caching',
13 => 'http://www.pps.jussieu.fr/~jch/software/polipo/',
14 => 'http://www.squid-cache.org/Doc/config/pipeline_prefetch/',
15 => 'http://www.w3.org/Library/User/History.html',
16 => 'http://www.w3.org/Protocols/HTTP/Performance/Pipeline.html',
17 => 'http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html',
18 => 'http://www8.org/w8-papers/5c-protocols/key/key.html',
19 => 'https://archive.org/details/firefoxsecrets0000chea/page/180',
20 => 'https://blogs.msdn.microsoft.com/ie/2005/04/11/internet-explorer-and-connection-limits/',
21 => 'https://bugzilla.mozilla.org/show_bug.cgi?id=264354',
22 => 'https://bugzilla.mozilla.org/show_bug.cgi?id=1340655',
23 => 'https://code.google.com/p/serf/',
24 => 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Connection_management_in_HTTP_1.x$revision/1330814',
25 => 'https://forum.palemoon.org/viewtopic.php?f=5&t=16869&p=123455',
26 => 'https://github.com/tempesta-tech/tempesta',
27 => 'https://github.com/tempesta-tech/tempesta/wiki/Servers:-Tempesta's-side',
28 => 'https://hg.mozilla.org/releases/mozilla-2.0/file/09565753ce5f/netwerk/protocol/http/src/nsHttpConnection.cpp#l251',
29 => 'https://lwn.net/Articles/362473/',
30 => 'https://technet.microsoft.com/en-us/library/cc737394(WS.10).aspx',
31 => 'https://web.archive.org/web/20091222054207/http://doc.qt.nokia.com/4.6/qnetworkrequest.html',
32 => 'https://web.archive.org/web/20101204053757/http://www.microsoft.com/windowsxp/expertzone/chats/transcripts/08_0814_ez_ie8.mspx',
33 => 'https://web.archive.org/web/20120310042434/http://miltonkeynes.pm.org/talks/2010/02/colin_bradford_http_async.pdf',
34 => 'https://web.archive.org/web/20120608143409/http://www.hpl.hp.com/research/linux/httperf/',
35 => 'https://web.archive.org/web/20120627181619/http://curl.haxx.se/dev/readme-pipelining.html',
36 => 'https://web.archive.org/web/20160424204340/http://www8.org/w8-papers/5c-protocols/key/key.html',
37 => 'https://www-archive.mozilla.org/projects/netlib/http/pipelining-faq.html',
38 => 'https://www.chromium.org/developers/design-documents/network-stack/http-pipelining',
39 => 'https://www.daemonology.net/phttpget/',
40 => 'https://www.die.net/musings/page_load_time/',
41 => 'https://www.mozilla.org/projects/netlib/http/pipelining-faq.html',
42 => 'https://www.w3.org/Protocols/HTTP/Performance/Pipeline.html'
] |
Parsed HTML source of the new revision (new_html ) | '<div class="mw-parser-output"><p>Hh
</p>
<div id="toc" class="toc" role="navigation" aria-labelledby="mw-toc-heading"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none" /><div class="toctitle" lang="en" dir="ltr"><h2 id="mw-toc-heading">Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#Motivation_and_limitations"><span class="tocnumber">1</span> <span class="toctext">Motivation and limitations</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="#Implementation_status"><span class="tocnumber">2</span> <span class="toctext">Implementation status</span></a>
<ul>
<li class="toclevel-2 tocsection-3"><a href="#Implementation_in_web_servers"><span class="tocnumber">2.1</span> <span class="toctext">Implementation in web servers</span></a></li>
<li class="toclevel-2 tocsection-4"><a href="#Implementation_in_web_browsers"><span class="tocnumber">2.2</span> <span class="toctext">Implementation in web browsers</span></a></li>
<li class="toclevel-2 tocsection-5"><a href="#Implementation_in_web_proxies"><span class="tocnumber">2.3</span> <span class="toctext">Implementation in web proxies</span></a></li>
<li class="toclevel-2 tocsection-6"><a href="#Other_implementations"><span class="tocnumber">2.4</span> <span class="toctext">Other implementations</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-7"><a href="#See_also"><span class="tocnumber">3</span> <span class="toctext">See also</span></a></li>
<li class="toclevel-1 tocsection-8"><a href="#References"><span class="tocnumber">4</span> <span class="toctext">References</span></a></li>
<li class="toclevel-1 tocsection-9"><a href="#External_links"><span class="tocnumber">5</span> <span class="toctext">External links</span></a></li>
</ul>
</div>
<h2><span class="mw-headline" id="Motivation_and_limitations">Motivation and limitations</span></h2>
<p>The pipelining of requests results in a dramatic improvement<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup> in the loading times of HTML pages, especially over high <a href="/wiki/Lag" title="Lag">latency</a> connections such as <a href="/wiki/Satellite_Internet" class="mw-redirect" title="Satellite Internet">satellite Internet connections</a>. The speedup is less apparent on broadband connections, as the limitation of HTTP 1.1 still applies: the server must send its responses in the same order that the requests were received—so the entire connection remains <a href="/wiki/FIFO_and_LIFO_accounting" title="FIFO and LIFO accounting">first-in-first-out</a><sup id="cite_ref-pipeline_2-0" class="reference"><a href="#cite_note-pipeline-2">[2]</a></sup> and <a href="/wiki/Head-of-line_blocking" title="Head-of-line blocking">HOL blocking</a> can occur. The asynchronous operation of <a href="/wiki/HTTP/2" title="HTTP/2">HTTP/2</a> and <a href="/wiki/SPDY" title="SPDY">SPDY</a> are solutions for this.<sup id="cite_ref-lwnspdy_3-0" class="reference"><a href="#cite_note-lwnspdy-3">[3]</a></sup> Browsers ultimately did not enable pipelining by default, and by 2017 most browsers supported HTTP/2 by default which used multiplexing instead.<sup id="cite_ref-:0_4-0" class="reference"><a href="#cite_note-:0-4">[4]</a></sup>
</p><p>Non-<a href="/wiki/Idempotence_(computer_science)#Examples" class="mw-redirect" title="Idempotence (computer science)">idempotent</a> requests, like those using <a href="/wiki/POST_(HTTP)" title="POST (HTTP)">POST</a>, should not be pipelined.<sup id="cite_ref-non-idempotent_5-0" class="reference"><a href="#cite_note-non-idempotent-5">[5]</a></sup> Sequences of GET and HEAD requests can always be pipelined. A sequence of other idempotent requests like PUT and DELETE can be pipelined or not depending on whether requests in the sequence depend on the effect of others.<sup id="cite_ref-pipeline_2-1" class="reference"><a href="#cite_note-pipeline-2">[2]</a></sup>
</p><p>HTTP pipelining requires both the client and the server to support it. <a href="/wiki/Hypertext_Transfer_Protocol" title="Hypertext Transfer Protocol">HTTP/1.1</a> 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.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6">[6]</a></sup>
</p>
<div style="clear:left;"></div>
<h2><span class="mw-headline" id="Implementation_status">Implementation status</span></h2>
<p>Pipelining was introduced in HTTP/1.1 and was not present in HTTP/1.0.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7">[7]</a></sup>
</p>
<h3><span class="mw-headline" id="Implementation_in_web_servers">Implementation in web servers</span></h3>
<p>Implementing pipelining in <a href="/wiki/Web_server" title="Web server">web servers</a> 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.
</p>
<h3><span class="mw-headline" id="Implementation_in_web_browsers">Implementation in web browsers</span></h3>
<p>Of all the major browsers, only <a href="/wiki/Opera_(web_browser)" title="Opera (web browser)">Opera</a> based on <a href="/wiki/Presto_(layout_engine)" class="mw-redirect" title="Presto (layout engine)">Presto</a> layout engine had a fully working implementation that was enabled by default. In all other browsers HTTP pipelining is disabled or not implemented.<sup id="cite_ref-lwnspdy_3-1" class="reference"><a href="#cite_note-lwnspdy-3">[3]</a></sup>
</p>
<ul><li><a href="/wiki/Internet_Explorer_8" title="Internet Explorer 8">Internet Explorer 8</a> does not pipeline requests, due to concerns regarding buggy proxies and <a href="/wiki/Head-of-line_blocking" title="Head-of-line blocking">head-of-line blocking</a>.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8">[8]</a></sup></li>
<li><a href="/wiki/Internet_Explorer_11" title="Internet Explorer 11">Internet Explorer 11</a> does not support pipelining.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9">[9]</a></sup></li>
<li>Mozilla browsers (such as <a href="/wiki/Mozilla_Firefox" class="mw-redirect" title="Mozilla Firefox">Mozilla Firefox</a>, <a href="/wiki/SeaMonkey" title="SeaMonkey">SeaMonkey</a> and <a href="/wiki/Camino_(web_browser)" title="Camino (web browser)">Camino</a>) support pipelining; however, it is disabled by default.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10">[10]</a></sup><sup id="cite_ref-11" class="reference"><a href="#cite_note-11">[11]</a></sup> Pipelining is disabled by default to avoid issues with misbehaving servers.<sup id="cite_ref-12" class="reference"><a href="#cite_note-12">[12]</a></sup> When pipelining is enabled, Mozilla browsers use some heuristics, especially to turn pipelining off for older <a href="/wiki/Internet_Information_Services" title="Internet Information Services">IIS</a> servers.<sup id="cite_ref-13" class="reference"><a href="#cite_note-13">[13]</a></sup> Support for H1 Pipeline was removed from Mozilla Firefox in Version 54.<sup id="cite_ref-14" class="reference"><a href="#cite_note-14">[14]</a></sup></li>
<li><a href="/wiki/Konqueror" title="Konqueror">Konqueror</a> 2.0 supports pipelining, but disabled by default.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (May 2019)">citation needed</span></a></i>]</sup></li>
<li><a href="/wiki/Google_Chrome" title="Google Chrome">Google Chrome</a> previously supported pipelining, but it has been disabled due to bugs and problems with poorly behaving servers.<sup id="cite_ref-15" class="reference"><a href="#cite_note-15">[15]</a></sup></li>
<li><a href="/wiki/Pale_Moon_(web_browser)" title="Pale Moon (web browser)">Pale Moon (web browser)</a> supports pipelining, and is enabled by default<sup id="cite_ref-16" class="reference"><a href="#cite_note-16">[16]</a></sup></li></ul>
<h3><span class="mw-headline" id="Implementation_in_web_proxies">Implementation in web proxies</span></h3>
<p>Most HTTP proxies do not pipeline outgoing requests.<sup id="cite_ref-17" class="reference"><a href="#cite_note-17">[17]</a></sup>
</p><p>Some versions of the <a href="/wiki/Squid_(software)" title="Squid (software)">Squid</a> web proxy will pipeline up to two outgoing requests. This functionality has been disabled by default and needs to be manually enabled for "bandwidth management and access logging reasons."<sup id="cite_ref-18" class="reference"><a href="#cite_note-18">[18]</a></sup> Squid supports multiple requests from clients.
</p><p>The <a href="/wiki/Polipo" title="Polipo">Polipo</a> proxy pipelines outgoing requests.<sup id="cite_ref-19" class="reference"><a href="#cite_note-19">[19]</a></sup>
</p><p>Tempesta FW, an open source <a href="/wiki/Application_delivery_controller" title="Application delivery controller">application delivery controller</a>,<sup id="cite_ref-20" class="reference"><a href="#cite_note-20">[20]</a></sup> also pipelines requests to backend servers.<sup id="cite_ref-21" class="reference"><a href="#cite_note-21">[21]</a></sup>
</p>
<h3><span class="mw-headline" id="Other_implementations">Other implementations</span></h3>
<p>The <a href="/wiki/Libwww" title="Libwww">libwww</a> <a href="/wiki/Library_(computing)" title="Library (computing)">library</a> made by the <a href="/wiki/World_Wide_Web_Consortium" title="World Wide Web Consortium">World Wide Web Consortium</a> (W3C), supports pipelining since version 5.1 released at 18 February 1997.<sup id="cite_ref-22" class="reference"><a href="#cite_note-22">[22]</a></sup>
</p><p>Other application development libraries that support HTTP pipelining include:
</p>
<ul><li>Perl modules providing client support for HTTP pipelining are HTTP::Async and the LWPng (<a href="/wiki/Libwww-perl" class="mw-redirect" title="Libwww-perl">libwww-perl</a> New Generation) library.<sup id="cite_ref-23" class="reference"><a href="#cite_note-23">[23]</a></sup></li>
<li><a href="/wiki/Apache_Foundation" class="mw-redirect" title="Apache Foundation">Apache Foundation</a> project <a href="/w/index.php?title=HttpComponents&action=edit&redlink=1" class="new" title="HttpComponents (page does not exist)">HttpComponents</a> provides pipelining support in the HttpCore NIO extensions.</li>
<li>The Microsoft <a href="/wiki/.NET_Framework" title=".NET Framework">.NET Framework</a> 3.5 supports HTTP pipelining in the module <code>System.Net.HttpWebRequest</code>.<sup id="cite_ref-24" class="reference"><a href="#cite_note-24">[24]</a></sup></li>
<li><a href="/wiki/Qt_(framework)" class="mw-redirect" title="Qt (framework)">Qt</a> class <code>QNetworkRequest</code>, introduced in 4.4.<sup id="cite_ref-25" class="reference"><a href="#cite_note-25">[25]</a></sup></li></ul>
<p>Some other applications currently exploiting pipelining are:
</p>
<ul><li>IceBreak application server since BUILD389</li>
<li>phttpget from <a href="/wiki/FreeBSD" title="FreeBSD">FreeBSD</a> (a minimalist pipelined HTTP client)<sup id="cite_ref-26" class="reference"><a href="#cite_note-26">[26]</a></sup></li>
<li><a href="/wiki/Libcurl" class="mw-redirect" title="Libcurl">libcurl</a> has limited support for pipelining using the CURLMOPT_PIPELINING option.<sup id="cite_ref-27" class="reference"><a href="#cite_note-27">[27]</a></sup></li>
<li><a href="/wiki/Portsnap" title="Portsnap">portsnap</a> (a <a href="/wiki/FreeBSD" title="FreeBSD">FreeBSD</a> <a href="/wiki/FreeBSD_Ports" title="FreeBSD Ports">ports tree</a> distribution system)</li>
<li><a href="/wiki/Advanced_Packaging_Tool" class="mw-redirect" title="Advanced Packaging Tool">Advanced Packaging Tool</a> (APT) support pipelining.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (August 2010)">citation needed</span></a></i>]</sup></li>
<li><a href="/wiki/Apache_Subversion" title="Apache Subversion">Subversion</a> (SVN) has optional support for HTTP pipelining with the <a href="/w/index.php?title=Serf_(library)&action=edit&redlink=1" class="new" title="Serf (library) (page does not exist)">serf</a> WebDAV access module (the default module, <a href="/wiki/Neon_(library)" title="Neon (library)">neon</a> does not have pipelining support).<sup id="cite_ref-28" class="reference"><a href="#cite_note-28">[28]</a></sup><sup id="cite_ref-29" class="reference"><a href="#cite_note-29">[29]</a></sup></li>
<li><a href="/wiki/Microsoft_Message_Queuing" title="Microsoft Message Queuing">Microsoft Message Queuing</a> on <a href="/wiki/Windows_Server_2003" title="Windows Server 2003">Windows Server 2003</a> utilises pipelining on HTTP by default, and can be configured to use it on HTTPS.<sup id="cite_ref-30" class="reference"><a href="#cite_note-30">[30]</a></sup></li>
<li>IBM <a href="/wiki/CICS" title="CICS">CICS</a> 3.1 supports HTTP pipelining within its client.<sup id="cite_ref-31" class="reference"><a href="#cite_note-31">[31]</a></sup></li></ul>
<p><a href="/w/index.php?title=Multipart_XHR&action=edit&redlink=1" class="new" title="Multipart XHR (page does not exist)">Multipart XHR</a> is implementation of pipelining (without any browser or web server support) done purely in JavaScript in combination with server-side scripting.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (August 2010)">citation needed</span></a></i>]</sup>
</p><p>Testing tools which support HTTP pipelining include:
</p>
<ul><li><a href="/wiki/Httperf" title="Httperf">httperf</a><sup id="cite_ref-32" class="reference"><a href="#cite_note-32">[32]</a></sup></li></ul>
<h2><span class="mw-headline" id="See_also">See also</span></h2>
<ul><li><a href="/wiki/HTTP_persistent_connection" title="HTTP persistent connection">HTTP persistent connection</a></li>
<li><a href="/wiki/WebSocket" title="WebSocket">WebSocket</a></li>
<li><a href="/wiki/SPDY" title="SPDY">SPDY</a></li></ul>
<h2><span class="mw-headline" id="References">References</span></h2>
<div class="reflist" style="list-style-type: decimal;">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r999302996">.mw-parser-output cite.citation{font-style:inherit}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .id-lock-free a,.mw-parser-output .citation .cs1-lock-free a{background:linear-gradient(transparent,transparent),url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited a,.mw-parser-output .id-lock-registration a,.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:linear-gradient(transparent,transparent),url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription a,.mw-parser-output .citation .cs1-lock-subscription a{background:linear-gradient(transparent,transparent),url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-subscription,.mw-parser-output .cs1-registration{color:#555}.mw-parser-output .cs1-subscription span,.mw-parser-output .cs1-registration span{border-bottom:1px dotted;cursor:help}.mw-parser-output .cs1-ws-icon a{background:linear-gradient(transparent,transparent),url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}.mw-parser-output code.cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;font-size:100%}.mw-parser-output .cs1-visible-error{font-size:100%}.mw-parser-output .cs1-maint{display:none;color:#33aa33;margin-left:0.3em}.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left,.mw-parser-output .cs1-kern-wl-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right,.mw-parser-output .cs1-kern-wl-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}</style><cite id="CITEREFNielsenGettysBaird-SmithPrud'hommeaux1997" class="citation web cs1"><a href="/wiki/Henrik_Frystyk_Nielsen" title="Henrik Frystyk Nielsen">Nielsen, Henrik Frystyk</a>; <a href="/wiki/Jim_Gettys" title="Jim Gettys">Gettys, Jim</a>; Baird-Smith, Anselm; Prud'hommeaux, Eric; <a href="/wiki/H%C3%A5kon_Wium_Lie" title="Håkon Wium Lie">Lie, Håkon Wium</a>; <a href="/wiki/Chris_Lilley_(computer_scientist)" title="Chris Lilley (computer scientist)">Lilley, Chris</a> (24 June 1997). <a rel="nofollow" class="external text" href="http://www.w3.org/Protocols/HTTP/Performance/Pipeline.html">"Network Performance Effects of HTTP/1.1, CSS1, and PNG"</a>. World Wide Web Consortium<span class="reference-accessdate">. Retrieved <span class="nowrap">14 January</span> 2010</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Network+Performance+Effects+of+HTTP%2F1.1%2C+CSS1%2C+and+PNG&rft.pub=World+Wide+Web+Consortium&rft.date=1997-06-24&rft.aulast=Nielsen&rft.aufirst=Henrik+Frystyk&rft.au=Gettys%2C+Jim&rft.au=Baird-Smith%2C+Anselm&rft.au=Prud%27hommeaux%2C+Eric&rft.au=Lie%2C+H%C3%A5kon+Wium&rft.au=Lilley%2C+Chris&rft_id=http%3A%2F%2Fwww.w3.org%2FProtocols%2FHTTP%2FPerformance%2FPipeline.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AHTTP+pipelining" class="Z3988"></span></span>
</li>
<li id="cite_note-pipeline-2"><span class="mw-cite-backlink">^ <a href="#cite_ref-pipeline_2-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-pipeline_2-1"><sup><i><b>b</b></i></sup></a></span> <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: The named reference <code>pipeline</code> was invoked but never defined (see the <a href="/wiki/Help:Cite_errors/Cite_error_references_no_text" title="Help:Cite errors/Cite error references no text">help page</a>).
</span></li>
<li id="cite_note-lwnspdy-3"><span class="mw-cite-backlink">^ <a href="#cite_ref-lwnspdy_3-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-lwnspdy_3-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite id="CITEREFWillis2009" class="citation web cs1">Willis, Nathan (18 November 2009). <a rel="nofollow" class="external text" href="https://lwn.net/Articles/362473/">"Reducing HTTP latency with SPDY"</a>. <a href="/wiki/LWN.net" title="LWN.net">LWN.net</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Reducing+HTTP+latency+with+SPDY&rft.pub=LWN.net&rft.date=2009-11-18&rft.aulast=Willis&rft.aufirst=Nathan&rft_id=https%3A%2F%2Flwn.net%2FArticles%2F362473%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AHTTP+pipelining" class="Z3988"></span></span>
</li>
<li id="cite_note-:0-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-:0_4-0">^</a></b></span> <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: The named reference <code>:0</code> was invoked but never defined (see the <a href="/wiki/Help:Cite_errors/Cite_error_references_no_text" title="Help:Cite errors/Cite error references no text">help page</a>).
</span></li>
<li id="cite_note-non-idempotent-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-non-idempotent_5-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html">"Connections"</a>. <a href="/wiki/W3.org" class="mw-redirect" title="W3.org">w3.org</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Connections&rft.pub=w3.org&rft_id=http%3A%2F%2Fwww.w3.org%2FProtocols%2Frfc2616%2Frfc2616-sec8.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AHTTP+pipelining" class="Z3988"></span></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www-archive.mozilla.org/projects/netlib/http/pipelining-faq.html">"HTTP/1.1 Pipelining FAQ<span class="cs1-kern-right">'</span>"</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=HTTP%2F1.1+Pipelining+FAQ%27&rft_id=https%3A%2F%2Fwww-archive.mozilla.org%2Fprojects%2Fnetlib%2Fhttp%2Fpipelining-faq.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AHTTP+pipelining" class="Z3988"></span></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20160424204340/http://www8.org/w8-papers/5c-protocols/key/key.html">"Archived copy"</a>. Archived from <a rel="nofollow" class="external text" href="http://www8.org/w8-papers/5c-protocols/key/key.html">the original</a> on 2016-04-24<span class="reference-accessdate">. Retrieved <span class="nowrap">2016-04-16</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Archived+copy&rft_id=http%3A%2F%2Fwww8.org%2Fw8-papers%2F5c-protocols%2Fkey%2Fkey.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AHTTP+pipelining" class="Z3988"></span><span class="cs1-maint citation-comment">CS1 maint: archived copy as title (<a href="/wiki/Category:CS1_maint:_archived_copy_as_title" title="Category:CS1 maint: archived copy as title">link</a>)</span></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20101204053757/http://www.microsoft.com/windowsxp/expertzone/chats/transcripts/08_0814_ez_ie8.mspx">"Wayback link of 'Windows Internet Explorer 8 Expert Zone Chat (August 14, 2008)<span class="cs1-kern-right">'</span>"</a>. <a href="/wiki/Microsoft" title="Microsoft">Microsoft</a>. August 14, 2008. Archived from <a rel="nofollow" class="external text" href="http://www.microsoft.com/windowsxp/expertzone/chats/transcripts/08_0814_ez_ie8.mspx">the original</a> on December 4, 2010<span class="reference-accessdate">. Retrieved <span class="nowrap">May 10,</span> 2012</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Wayback+link+of+%27Windows+Internet+Explorer+8+Expert+Zone+Chat+%28August+14%2C+2008%29%27&rft.pub=Microsoft&rft.date=2008-08-14&rft_id=http%3A%2F%2Fwww.microsoft.com%2Fwindowsxp%2Fexpertzone%2Fchats%2Ftranscripts%2F08_0814_ez_ie8.mspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AHTTP+pipelining" class="Z3988"></span></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation news cs1"><a rel="nofollow" class="external text" href="https://blogs.msdn.microsoft.com/ie/2005/04/11/internet-explorer-and-connection-limits/">"Internet Explorer and Connection Limits"</a>. <i>IEBlog</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2016-11-14</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=IEBlog&rft.atitle=Internet+Explorer+and+Connection+Limits&rft_id=https%3A%2F%2Fblogs.msdn.microsoft.com%2Fie%2F2005%2F04%2F11%2Finternet-explorer-and-connection-limits%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AHTTP+pipelining" class="Z3988"></span></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://kb.mozillazine.org/Network.http.pipelining">Pipelining Network</a> <a href="/wiki/MozillaZine" title="MozillaZine">MozillaZine</a></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite id="CITEREFCheah_Chu_Yeow" class="citation book cs1">Cheah Chu Yeow. <span class="cs1-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/firefoxsecrets0000chea/page/180"><i>Firefox secrets</i></a></span>. p. <a rel="nofollow" class="external text" href="https://archive.org/details/firefoxsecrets0000chea/page/180">180</a>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/0-9752402-4-2" title="Special:BookSources/0-9752402-4-2"><bdi>0-9752402-4-2</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Firefox+secrets&rft.pages=180&rft.isbn=0-9752402-4-2&rft.au=Cheah+Chu+Yeow&rft_id=https%3A%2F%2Farchive.org%2Fdetails%2Ffirefoxsecrets0000chea%2Fpage%2F180&rfr_id=info%3Asid%2Fen.wikipedia.org%3AHTTP+pipelining" class="Z3988"></span></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://bugzilla.mozilla.org/show_bug.cgi?id=264354">"Bug 264354: Enable HTTP pipelining by default"</a>. <a href="/wiki/Mozilla" title="Mozilla">Mozilla</a><span class="reference-accessdate">. Retrieved <span class="nowrap">September 16,</span> 2011</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Bug+264354%3A+Enable+HTTP+pipelining+by+default&rft.pub=Mozilla&rft_id=https%3A%2F%2Fbugzilla.mozilla.org%2Fshow_bug.cgi%3Fid%3D264354&rfr_id=info%3Asid%2Fen.wikipedia.org%3AHTTP+pipelining" class="Z3988"></span></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://hg.mozilla.org/releases/mozilla-2.0/file/09565753ce5f/netwerk/protocol/http/src/nsHttpConnection.cpp#l251">"Source code – nsHttpConnection.cpp"</a>. <i>Firefox source code</i>. Mozilla. May 7, 2010<span class="reference-accessdate">. Retrieved <span class="nowrap">December 5,</span> 2010</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Firefox+source+code&rft.atitle=Source+code+%E2%80%93+nsHttpConnection.cpp&rft.date=2010-05-07&rft_id=https%3A%2F%2Fhg.mozilla.org%2Freleases%2Fmozilla-2.0%2Ffile%2F09565753ce5f%2Fnetwerk%2Fprotocol%2Fhttp%2Fsrc%2FnsHttpConnection.cpp%23l251&rfr_id=info%3Asid%2Fen.wikipedia.org%3AHTTP+pipelining" class="Z3988"></span></span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1340655">"Bug 1340655: Remove H1 Pipeline Support"</a>. <a href="/wiki/Mozilla" title="Mozilla">Mozilla</a><span class="reference-accessdate">. Retrieved <span class="nowrap">March 22,</span> 2017</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Bug+1340655%3A+Remove+H1+Pipeline+Support&rft.pub=Mozilla&rft_id=https%3A%2F%2Fbugzilla.mozilla.org%2Fshow_bug.cgi%3Fid%3D1340655&rfr_id=info%3Asid%2Fen.wikipedia.org%3AHTTP+pipelining" class="Z3988"></span></span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://www.chromium.org/developers/design-documents/network-stack/http-pipelining">HTTP Pipelining - The Chromium Projects</a></span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://forum.palemoon.org/viewtopic.php?f=5&t=16869&p=123455">"HTTP/1 Pipelining support has been removed in Firefox 54 - Pale Moon forum"</a>. <i>forum.palemoon.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2018-06-07</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=forum.palemoon.org&rft.atitle=HTTP%2F1+Pipelining+support+has+been+removed+in+Firefox+54+-+Pale+Moon+forum&rft_id=https%3A%2F%2Fforum.palemoon.org%2Fviewtopic.php%3Ff%3D5%26t%3D16869%26p%3D123455&rfr_id=info%3Asid%2Fen.wikipedia.org%3AHTTP+pipelining" class="Z3988"></span></span>
</li>
<li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite id="CITEREFMark_Nottingham2007" class="citation web cs1"><a href="/wiki/Mark_Nottingham" title="Mark Nottingham">Mark Nottingham</a> (June 20, 2007). <a rel="nofollow" class="external text" href="http://www.mnot.net/blog/2007/06/20/proxy_caching">"The State of Proxy Caching"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">May 16,</span> 2009</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=The+State+of+Proxy+Caching&rft.date=2007-06-20&rft.au=Mark+Nottingham&rft_id=http%3A%2F%2Fwww.mnot.net%2Fblog%2F2007%2F06%2F20%2Fproxy_caching&rfr_id=info%3Asid%2Fen.wikipedia.org%3AHTTP+pipelining" class="Z3988"></span></span>
</li>
<li id="cite_note-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-18">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.squid-cache.org/Doc/config/pipeline_prefetch/">"squid : pipeline_prefetch configuration directive"</a>. <a href="/wiki/Squid_(software)" title="Squid (software)">Squid</a>. November 9, 2009<span class="reference-accessdate">. Retrieved <span class="nowrap">December 1,</span> 2009</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=squid+%3A+pipeline_prefetch+configuration+directive&rft.pub=Squid&rft.date=2009-11-09&rft_id=http%3A%2F%2Fwww.squid-cache.org%2FDoc%2Fconfig%2Fpipeline_prefetch%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AHTTP+pipelining" class="Z3988"></span></span>
</li>
<li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.pps.jussieu.fr/~jch/software/polipo/">"Polipo — a caching web proxy"</a>. Juliusz Chroboczek. September 18, 2009<span class="reference-accessdate">. Retrieved <span class="nowrap">November 12,</span> 2009</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Polipo+%E2%80%94+a+caching+web+proxy&rft.pub=Juliusz+Chroboczek&rft.date=2009-09-18&rft_id=http%3A%2F%2Fwww.pps.jussieu.fr%2F~jch%2Fsoftware%2Fpolipo%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AHTTP+pipelining" class="Z3988"></span></span>
</li>
<li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/tempesta-tech/tempesta">"Tempesta FW — a Linux Application Delivery Controller"</a>. GitHub<span class="reference-accessdate">. Retrieved <span class="nowrap">March 29,</span> 2018</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Tempesta+FW+%E2%80%94+a+Linux+Application+Delivery+Controller&rft.pub=GitHub&rft_id=https%3A%2F%2Fgithub.com%2Ftempesta-tech%2Ftempesta&rfr_id=info%3Asid%2Fen.wikipedia.org%3AHTTP+pipelining" class="Z3988"></span></span>
</li>
<li id="cite_note-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-21">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/tempesta-tech/tempesta/wiki/Servers:-Tempesta's-side">"Servers: Tempesta's side - tempesta-tech/tempesta Wiki"</a>. Tempesta Technologies INC. August 1, 2017<span class="reference-accessdate">. Retrieved <span class="nowrap">March 29,</span> 2018</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Servers%3A+Tempesta%27s+side+-+tempesta-tech%2Ftempesta+Wiki&rft.pub=Tempesta+Technologies+INC&rft.date=2017-08-01&rft_id=https%3A%2F%2Fgithub.com%2Ftempesta-tech%2Ftempesta%2Fwiki%2FServers%3A-Tempesta%27s-side&rfr_id=info%3Asid%2Fen.wikipedia.org%3AHTTP+pipelining" class="Z3988"></span></span>
</li>
<li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite id="CITEREFKahan2002" class="citation web cs1">Kahan, José (June 7, 2002). <a rel="nofollow" class="external text" href="http://www.w3.org/Library/User/History.html">"Change History of libwww"</a>. <a href="/wiki/World_Wide_Web_Consortium" title="World Wide Web Consortium">World Wide Web Consortium</a><span class="reference-accessdate">. Retrieved <span class="nowrap">August 3,</span> 2010</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Change+History+of+libwww&rft.pub=World+Wide+Web+Consortium&rft.date=2002-06-07&rft.aulast=Kahan&rft.aufirst=Jos%C3%A9&rft_id=http%3A%2F%2Fwww.w3.org%2FLibrary%2FUser%2FHistory.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AHTTP+pipelining" class="Z3988"></span></span>
</li>
<li id="cite_note-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-23">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20120310042434/http://miltonkeynes.pm.org/talks/2010/02/colin_bradford_http_async.pdf">"Using HTTP::Async for Parallel HTTP Requests (Colin Bradford)"</a> <span class="cs1-format">(PDF)</span>. Archived from <a rel="nofollow" class="external text" href="http://miltonkeynes.pm.org/talks/2010/02/colin_bradford_http_async.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2012-03-10<span class="reference-accessdate">. Retrieved <span class="nowrap">2010-08-03</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Using+HTTP%3A%3AAsync+for+Parallel+HTTP+Requests+%28Colin+Bradford%29&rft_id=http%3A%2F%2Fmiltonkeynes.pm.org%2Ftalks%2F2010%2F02%2Fcolin_bradford_http_async.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AHTTP+pipelining" class="Z3988"></span></span>
</li>
<li id="cite_note-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-24">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://blogs.msdn.com/b/mflasko/archive/2006/07/17/669293.aspx">System.Net.HttpWebRequest & pipelining</a></span>
</li>
<li id="cite_note-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-25">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://doc.qt.nokia.com/4.6/qnetworkrequest.html">QNetworkRequest Class Reference</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20091222054207/http://doc.qt.nokia.com/4.6/qnetworkrequest.html">Archived</a> 2009-12-22 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a>, Nokia QT documentation</span>
</li>
<li id="cite_note-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-26">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.daemonology.net/phttpget/">Pipelined HTTP GET utility</a></span>
</li>
<li id="cite_note-27"><span class="mw-cite-backlink"><b><a href="#cite_ref-27">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://curl.haxx.se/dev/readme-pipelining.html">Curl pipelining explanation</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20120627181619/http://curl.haxx.se/dev/readme-pipelining.html">Archived</a> 2012-06-27 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a>, Curl developer documentation</span>
</li>
<li id="cite_note-28"><span class="mw-cite-backlink"><b><a href="#cite_ref-28">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite id="CITEREFC._Michael_PilatoBen_Collins-SussmanBrian_W._Fitzpatrick2008" class="citation book cs1">C. Michael Pilato; Ben Collins-Sussman; Brian W. Fitzpatrick (2008). <i>Version Control with Subversion</i>. <a href="/wiki/O%27Reilly_Media" title="O'Reilly Media">O'Reilly Media</a>. p. 238. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/0-596-51033-0" title="Special:BookSources/0-596-51033-0"><bdi>0-596-51033-0</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Version+Control+with+Subversion&rft.pages=238&rft.pub=O%27Reilly+Media&rft.date=2008&rft.isbn=0-596-51033-0&rft.au=C.+Michael+Pilato&rft.au=Ben+Collins-Sussman&rft.au=Brian+W.+Fitzpatrick&rfr_id=info%3Asid%2Fen.wikipedia.org%3AHTTP+pipelining" class="Z3988"></span></span>
</li>
<li id="cite_note-29"><span class="mw-cite-backlink"><b><a href="#cite_ref-29">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite id="CITEREFJustin_R._Erenkrantz2007" class="citation web cs1">Justin R. Erenkrantz (2007). <a rel="nofollow" class="external text" href="http://www.erenkrantz.com/oscon/OSCON%202007%20Subversion%20New%20Toys.pdf">"Subversion: Powerful New Toys"</a> <span class="cs1-format">(PDF)</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Subversion%3A+Powerful+New+Toys&rft.date=2007&rft.au=Justin+R.+Erenkrantz&rft_id=http%3A%2F%2Fwww.erenkrantz.com%2Foscon%2FOSCON%25202007%2520Subversion%2520New%2520Toys.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AHTTP+pipelining" class="Z3988"></span></span>
</li>
<li id="cite_note-30"><span class="mw-cite-backlink"><b><a href="#cite_ref-30">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://technet.microsoft.com/en-us/library/cc737394%28WS.10%29.aspx">"HTTP/HTTPS messages"</a>. <a href="/wiki/Microsoft_TechNet" title="Microsoft TechNet">Microsoft TechNet</a>. January 21, 2005.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=HTTP%2FHTTPS+messages&rft.pub=Microsoft+TechNet&rft.date=2005-01-21&rft_id=https%3A%2F%2Ftechnet.microsoft.com%2Fen-us%2Flibrary%2Fcc737394%2528WS.10%2529.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AHTTP+pipelining" class="Z3988"></span></span>
</li>
<li id="cite_note-31"><span class="mw-cite-backlink"><b><a href="#cite_ref-31">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://publib.boulder.ibm.com/infocenter/cicsts/v3r1/index.jsp?topic=/com.ibm.cics.ts31.doc/dfhtl/topics/dfhtl_cwspipelining.htm">How CICS Web support handles pipelining</a></span>
</li>
<li id="cite_note-32"><span class="mw-cite-backlink"><b><a href="#cite_ref-32">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20120608143409/http://www.hpl.hp.com/research/linux/httperf/">"HTTP Website"</a>. Archived from <a rel="nofollow" class="external text" href="http://www.hpl.hp.com/research/linux/httperf/">the original</a> on 2012-06-08<span class="reference-accessdate">. Retrieved <span class="nowrap">2010-10-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=HTTP+Website&rft_id=http%3A%2F%2Fwww.hpl.hp.com%2Fresearch%2Flinux%2Fhttperf%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AHTTP+pipelining" class="Z3988"></span></span>
</li>
</ol></div></div>
<h2><span class="mw-headline" id="External_links">External links</span></h2>
<ul><li><a class="external mw-magiclink-rfc" rel="nofollow" href="https://tools.ietf.org/html/rfc7230">RFC 7230</a> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r999302996"/><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://tools.ietf.org/html/rfc7230#section-6.3.2">"Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing"</a>. ietf.org<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-24</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Hypertext+Transfer+Protocol+%28HTTP%2F1.1%29%3A+Message+Syntax+and+Routing&rft.pub=ietf.org&rft_id=http%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc7230%23section-6.3.2&rfr_id=info%3Asid%2Fen.wikipedia.org%3AHTTP+pipelining" class="Z3988"></span></li>
<li><a rel="nofollow" class="external text" href="https://www.mozilla.org/projects/netlib/http/pipelining-faq.html">HTTP/1.1 Pipelining FAQ at mozilla.org</a></li>
<li><a rel="nofollow" class="external text" href="https://www.w3.org/Protocols/HTTP/Performance/Pipeline.html">"Network Performance Effects of HTTP/1.1, CSS1, and PNG" at w3.org</a></li>
<li><a rel="nofollow" class="external text" href="https://www.die.net/musings/page_load_time/">"Optimizing Page Load Times" article</a></li>
<li><a rel="nofollow" class="external text" href="https://www.daemonology.net/phttpget/">phttpget</a></li>
<li><a rel="nofollow" class="external text" href="https://code.google.com/p/serf/">serf</a> C library</li></ul>
' |
Whether or not the change was made through a Tor exit node (tor_exit_node ) | false |
Unix timestamp of change (timestamp ) | 1612889632 |