如圖,用firebug分析網頁,發現鏈接處有不少阻擋,並且時間很長,在firebug的官方wiki中找到了 「阻擋」 的解釋(內容來自http://getfirebug.com/wiki/index.php/Main_Page):
第一個 Blocking 翻譯成中文解釋爲:
所花費的時間在瀏覽器中隊列(前稱爲排隊等待網絡鏈接)SSL鏈接的,這包括SSL握手和OCSP驗證步驟。即隊列等待時間。瀏覽器的隊列等待時間與瀏覽器的併發數有關,常見瀏覽器的併發數以下:
瀏覽器 HTTP 1.1 HTTP 1.0
IE 6,7 2 4
IE 8 6 6
Firefox 2 2 8
Firefox 3 6 6
Safari 3, 4 4 4
Chrome 1,2 6 ?
Chrome 3 4 4
Opera 9.63,10.00alpha 4 4 例如Firefox3 對於一個主機(同一主機域名),一次性只能處理6個請求,而多餘的請求則處於隊列當中。
爲了提升反問速度能夠給網站加更多的域名,如京東就是採用更多的域名來提升併發
引用:http://hi.baidu.com/thinkinginlamp/blog/item/e6409313f6ae1c866438db4c.html
瀏覽器併發鏈接數IE7 2
IE8 6
Firefox2 2
Firefox3 6
看上去巧合的是:老版本的IE和Firefox都使用較低的單個主機併發鏈接數(2),而新版本的IE和Firefox都使用較高的單個主機併發鏈接數(6)。提及來老版本的IE和Firefox之因此採用較低的單個主機併發鏈接數是有道理的,在RFC2616裏明確要求了單個主機併發鏈接數的數目:
Clients that use persistent connections SHOULD limit the
number of simultaneous connections that they maintain to a given server.
A single-user client SHOULD NOT maintain more than 2 connections with
any server or proxy. A proxy SHOULD use up to 2*N connections to another
server or proxy, where N is the number of simultaneously active users.
These guidelines are intended to improve HTTP response times and avoid
congestion.
不過標準總會落後於現實。在當今的網絡環境裏再使用較低的單個主機併發鏈接數已經愈來愈顯得不合時宜了,因此說新版本的IE和Firefox纔會不約而同的採用較高的單個主機併發鏈接數。
不過不少時候咱們爲了效率還想獲得更高的併發鏈接數,好比說咱們總會看到一些大網站採用獨立域名或者二級域名來設置專門的圖片服務器,其實有一部分緣由就是爲了增長併發鏈接數。至於使用獨立域名仍是二級域名的差異在於Cookie的影響,當使用和主站根域名相同的二級域名時,請求的同時也會捎帶着傳遞主站
根域名的Cookie,而使用和主站根域名不一樣的獨立域名時,則不會受主站根域名Cookie的影響,因此帶寬佔用會更小一些。
不過也不是說併發鏈接數越大越好,假如新版瀏覽器獲得普及,即便你的網站的平均流量還維持在和之前同樣的水平,那麼峯值流量也會成倍增長。
順便說說Firefox下怎麼調整單個主機下的併發數:
# about:config
network.http.max-connections : 30
network.http.max-connections-per-server : 15
network.http.max-persistent-connections-per-proxy : 8
network.http.max-persistent-connections-per-server: 6
須要說明的是HTTP1.1下以network.http.max-persistent-connections-per-server的指爲準,這是
由於HTTP1.1下缺省都是持久鏈接,反之若是是HTTP1.0,則以network.http.max-connections-per-
server爲準。
若是你使用TamperData檢測一下,就能發現:
HTTP1.1下Connection: Keep-Alive
HTTP1.0下Connection: Closephp