我想了解什麼是HTTP管道和HTTP保持連接,並試圖建立這兩個主題和服務器發送事件技術之間的連接。HTTP:流水線,保持活動和服務器發送事件之間的關係是什麼?
據我瞭解, HTTP保持活動連接是在HTTP默認使用TCP的1.1方式時,一旦建立TCP連接用於發送幾個HTTP請求一個接一個。 HTTP流水線是客戶端向服務器發送請求的能力,而對先前請求的響應尚未使用相同的TCP連接接收,通常不用作瀏覽器的默認方式。
我的問題:
1)是否有可能一個使用一個TCP連接後幾個請求發送到服務器的一個 - 如何在客戶端的響應區分?我猜客戶端使用FIFO發送服務器響應的順序?
2)爲什麼非冪等請求,如POST請求不應該流水線(根據維基百科)?
3)web服務器的侷限性是什麼:可能的開放式TCP連接數是否有限?如果是的話,那麼如果一些客戶端持有保持連接狀態,其他客戶端不能建立連接,這可能會導致問題,對吧?
4)服務器發送的事件正在使用保持連接,但據我所知,SSE沒有使用流水線。相反,他們設法處理對一個請求的多個響應,或者可能只是在下一個響應事件到達時才發送另一個請求。哪個猜測是正確的?
5)一個TCP連接意味着一個套接字?一個套接字是指一個TCP連接?關閉/打開套接字是指關閉/打開TCP連接?
Thanks porneL! 1)但是,如果某些迴應與發送的訂單相關的錯誤順序到達了怎麼辦? 3)使用代理的好處是什麼?它必須與服務器建立相同的連接? 4)所以使用SSE意味着+1連接,從而提高服務器負載? – KutaBeach
@KutaBeach我已經擴展了我的答案 – Kornel