2013-10-26 56 views
1

當我加載顯示的網頁時,爲什麼我會爲每個圖像的HTTP請求打開一個新的TCP連接?爲什麼在頁面加載期間沒有重用單個TCP連接?缺少TCP連接重用

+0

這是關閉的話題。但是,想象一個電話與TCP連接相同。如果你需要給別人打電話(圖片),你需要撥打新的電話。請查看[Help - On Topic Quetions](http://stackoverflow.com/help/on-topic) –

+0

以下http://stackoverflow.com/a/12795169/986760可能有助於清楚地看到那些誰令人困惑的管道襯裏與多個TCP連接 – fayyazkl

+0

@ErikPhilips a從同一站點獲取另一個圖像不需要新的連接。 – EJP

回答

3

我認爲瀏覽器通常打開多個連接,以便它可以並行加載內容。另一種可能是服務器在完成發送圖像文件並關閉連接後強制瀏覽器創建新連接。

1

瀏覽器還集成了一種稱爲HTTP流水線的技術,其中現有的TCP連接用於多個HTTP請求,但問題是所有傳入的HTTP響應應與發送請求的順序相同。

HTTP管道:

enter image description here

欲瞭解更多信息,請訪問page

1

雖然大部分的原因引用已經是真實的(我upvoted),即你可能需要通過不同得到不同的資源連接例如一個加載標誌,其他加載頁面數據等,管道襯裏並不總是可能的,再加上它試圖並行做事。

不過,多個TCP連接的頭頂對HTTP的影響總體上比較慢。這就是爲什麼谷歌一直在努力加速它的和新的模型http 2.0將使用一個單一的http連接。

Details幾天前發佈在黑客新聞上,基準測試令人印象深刻,不過它還有其他幾個因素,比如使用較少的字節數的協議。

SPDY是google自己發佈的早期版本

+0

先生,您是否說每個標籤都可能有多個TCP連接,因爲標籤中的每個網頁都包含要下載的大量資源/內容? – Subbu

+0

是的,情況正是如此。即使是非常小的請求,也會使用兩個連接,其中一個連接分別下載徽標。 – fayyazkl

+0

你能給我一個使用流水線的實例嗎?網頁的例子?? – Subbu