小草淺淺談web(二)

blog: http://homeway.me/web

本文主要包含:http & web加速




Ox01.http 1.0/1.1

http網上講的不少,不外乎就那幾點。chrome

先看個http流程圖:緩存

http流程

http 1.0, 一個請求開啓一次TCP鏈接。服務器

http 1.0連接方式




http 1.1連接方式

詳細的看這裏吧: http://blog.csdn.net/forgotaboutgirl/article/details/6936982網絡




Ox02.http 2.0

http 2.0將可能引入 SPDY 協議。併發

SODY協議是由google基於TCP應用層協議,避開HTTP的短鏈接損耗,同時支持多路複用(利用多stream機制),使得服務端和客戶端僅需一個TCP鏈接便可傳輸任意內容,大大節省服務器資源,提升網絡利用率。同時易於部署,服務端客戶端加上SPDY協議的解析便可,對於應用開發人員、應用用戶而言不須要任何額外知識。測試

SPDY有幾個新特性:網站

  • #### 多路stream

SPDY容許在單一TCP鏈接上併發無限個stream。因爲請求能夠在單一通道上交錯,TCP的效率高了許多:只需不多的鏈接,而且網絡封包也能夠更少更緊湊。google

當你打開一個TCP連接,發送請求包,將持續收到stream式數據。spa




SPDY 鏈接流




  • #### HTTP頭內容壓縮

SPDY容許壓縮HTTP請求和響應頭,所以能夠(比傳統HTTP)傳輸更少的包和數據.




SPDY 壓縮




  • #### 服務器推送流(Server Push)

http 1.0時代,服務器只能被動接受,客戶端主動請求,服務器只負責回饋數據。

SPDY在實驗服務器經過聲明X-Associated-Content頭來推送內容。服務端經過這個頭告知客戶端須要推送資源。




SPDY 鏈接




  • 與HTTP兼容

HTTP自己是單次請求+單次響應的結構,因此SPDY中使用帶有FLAG_FIN的SYN_STREAM來兼容HTTP請求,而帶有FLAG_FIN的SYN_REPLY來兼容HTTP響應。對於帶有請求body(上傳文件)的狀況,這時在SYN_STREAM能夠不包含FLAG_FIN標識,而後客戶端將數據按數據幀的大小限制(最大2^31 – 1)進行拆分,跟隨發送若干數據幀,在最後一個數據幀上帶有FLAG_FIN便可。對於服務端響應中的大量內容(如HTML頁面、JS、CSS等),一樣採用相似方法,只在最後一個數據幀帶上FLAG_FIN。




SPDY 兼容




Ox03.web速度

先看看你點擊一個網站產生的數據流。




訪問 web數據流




  • 網口轉換

  • 數據形式轉換

  • 光纜/電纜傳輸

  • ISP接入

  • 服務器解析

  • 客戶端渲染

  • 還有一個重要的: DNS查詢


一個web測試網站:http://www.webpagetest.org/

下面對醒來網站的測試:




http://xinglai.org/ 測試

從下面的測試能夠看出,訪問一個網站耗時的幾個東西:

  • 下載一個很大的png

  • DNS查詢

  • TCP流初始化時間




關於網絡帶寬與延遲的測試




網絡帶寬與延遲

從上面很容易看到,網絡帶寬不是最主要的問題,網絡延遲纔是主要問題。

查看你本地的DNS緩存:chrome://dns




本文連接,轉載請註明來源。 http://homeway.me


-by 小草

2014-09-11 21:57:14

相關文章
相關標籤/搜索