一千萬個為什麽

搜索

使用HTTP/1.1 Pipelining發出多個請求

使用HTTP/1.1 Pipelining時標準對發出多個請求的說法是什麽,而不等待每個請求完成?服務器在實踐中做了什麽?

我問,因為我曾經嘗試編寫一個客戶端,它會發出一批 GET 請求多個文件並記住收到錯誤。我不確定是否是由於我錯誤地發出 GET 或者需要等待每個單獨的請求完成才發出下一個 GET

最佳答案

流水線就是這樣 - 在單個連接上“飛行中”有多個請求。

在開放的互聯網上,流水線操作並不常見,因為少數服務器和中介機構沒有做到正確,並且弄亂流水線操作的後果可能非常嚴重(例如,將響應混合到兩個不同的用戶)。

請記住,只有HTTP/1.1支持流水線操作;如果你有一個HTTP/1.0服務器,或者中間有一個1.0代理,它可能不起作用。

流水線操作只能用於GET和HEAD等“冪等”方法; POST等不允許

See: http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-09#section-7.1.2.2

轉載註明原文: 使用HTTP/1.1 Pipelining發出多個請求