HTTP管線(英語:HTTP pipelining)是將多個HTTP請求(request)整批送出的技術,而在傳送過程中不需先等待伺服器的回應。

Schema of non-pipelined vs. pipelined connection.

請求結果管線使得 HTML 網頁載入時間動態提升,特別是在具體有高延遲的連接環境下,如衛星上網。在寬頻連接中,加速不是那麼顯著的,因為需要伺服器端要遵循 HTTP/1.1 協定,必須按照客戶端傳送的請求順序來回覆請求,這樣整個連接還是先進先出的,隊頭阻塞(HOL blocking)可能會發生,造成延遲。未來的 HTTP/2.0 或者SPDY中的非同步操作將會解決這個問題。因為它可能將多個 HTTP 請求填充在一個TCP封包內,HTTP 管線需要在網路上傳輸較少的 TCP 封包,減少了網路負載。

管線機制須透過永久連線(persistent connection)完成,並且只有 GET 和 HEAD 等要求可以進行管線,非冪等的方法,例如POST將不會被管線化。連續的 GET 和 HEAD 請求總可以管線化的。一個連續的冪等請求,如 GET,HEAD,PUT,DELETE,是否可以被管線化取決於一連串請求是否依賴於其他的。此外,初次建立連線時也不應啟動管線機制,因為對方(伺服器)不一定支援 HTTP/1.1 版本的協定。

HTTP 管線化同時依賴於客戶端和伺服器的支援。遵守 HTTP/1.1 的伺服器支援管線化。這並不是意味著伺服器需要提供管線化的回覆,而只是要求在收到管線化的請求時候不會失敗。

實作

編輯

實作在網頁伺服器

編輯

實作在瀏覽器

編輯