2015-05-14 74 views
-1

想象一下這樣的情景:鉻TCP HTTP連接

  • 有Chrome版客戶端,Ç
  • 有一個Web服務器,W¯¯
  • 在Web服務器是一個HTML文件,WH,圖片WI

C想訪問W的網頁。 TCP連接已打開。網絡服務器發送WHCç看到,有上WHWI圖像...

現在問題來了:客戶是否建立一個新的TCP連接請求的形象呢?或者它只是發送一個新的PSH-ACK?


秒問題:瀏覽器之間有不同嗎?

回答

2

客戶端請求使用另一個HTTP GET請求的圖像。它可以在同一連接上執行此操作,也可以打開新的連接。如果客戶端在下載時開始解析頁面,則可能會使用新的連接,因此這兩個文件可以同時下載。如果它看到更多的圖像標籤,它可以爲此打開其他連接。爲了防止服務器過載,運行良好的瀏覽器對同時連接的同時連接數量有限制,一般在4左右。

如果它首次下載整個文件,它可以重新使用原始連接請求圖像。但是,如果有多個圖像,它可能會爲每個圖像打開單獨的連接(達到上述限制),以便它們可以並行下載。

+0

感謝您的幫助,我發現'Keep-Alive'標題只會讓客戶端打開一個連接。沒有這個頭部,它會打開更多的連接。 –

+0

這在TCP/1.1中不應該是必須的,它應該默認保持連接打開狀態。你使用的是TCP/1.0嗎? – Barmar