2010-10-06 77 views

回答

12

是這些GET經由 服務器在

並行或順序處理的請求(都在同一 TCP/IP連接)?

它按順序處理。它被稱爲流水線。流水線是HTTP/1.1的一部分,這意味着在通過持久連接發送下一個請求之前,客戶端不需要等待當前請求完成 。它可以通過同一連接發送多個請求,而無需等待以前請求的響應。請求以FIFO方式處理,即客戶端可以按順序發送幾個請求,並且服務器應該按照收到請求的相同順序發送對每個請求的響應。所以如果您使用的服務器符合HTTP/1.1標準,那麼它應該按順序處理。

4

HTTP管道相繼發生。 HTTP中不支持任何種類的交織。

但是,對於流水線處理,服務器在完成服務最後一個請求之前可能知道所有請求。理論上,它可以並行地完成必要的I/O。

雖然看起來並不像nginx那樣做。

+2

我已經運行了幾個Apache Web服務器的測試,可以確認它是事實上的順序 - 早期的慢請求將延遲處理下面的更快的請求。 – 2011-05-04 22:25:23