我們收到很多googlebot請求。一個TCP/IP連接中的多個HTTP GET請求 - 並行或連續處理
的googlebot經由11 HTTP GET請求,所有請求多達11個不同的文件中一個單一的TCP/IP連接。
是這些GET通過服務器處理的請求(全部在相同的TCP/IP連接)在
- 平行
- 或在序列?
還是服務器?
- 在這種情況下,nginx如何處理?
THX對您有所幫助
我們收到很多googlebot請求。一個TCP/IP連接中的多個HTTP GET請求 - 並行或連續處理
的googlebot經由11 HTTP GET請求,所有請求多達11個不同的文件中一個單一的TCP/IP連接。
是這些GET通過服務器處理的請求(全部在相同的TCP/IP連接)在
還是服務器?
THX對您有所幫助
是這些GET經由 服務器在
並行或順序處理的請求(都在同一 TCP/IP連接)?
它按順序處理。它被稱爲流水線。流水線是HTTP/1.1的一部分,這意味着在通過持久連接發送下一個請求之前,客戶端不需要等待當前請求完成 。它可以通過同一連接發送多個請求,而無需等待以前請求的響應。請求以FIFO方式處理,即客戶端可以按順序發送幾個請求,並且服務器應該按照收到請求的相同順序發送對每個請求的響應。所以如果您使用的服務器符合HTTP/1.1標準,那麼它應該按順序處理。
HTTP管道相繼發生。 HTTP中不支持任何種類的交織。
但是,對於流水線處理,服務器在完成服務最後一個請求之前可能知道所有請求。理論上,它可以並行地完成必要的I/O。
雖然看起來並不像nginx那樣做。
我已經運行了幾個Apache Web服務器的測試,可以確認它是事實上的順序 - 早期的慢請求將延遲處理下面的更快的請求。 – 2011-05-04 22:25:23