思維導圖分析http之http協議版本

來源:互聯網
上載者:User

標籤:http   http協議   http協議版本   

httpd協議之http協議版本

1.結構總覽

  650) this.width=650;" src="https://s5.51cto.com/wyfs02/M00/97/C9/wKioL1kyuazTOXDFAABFCiDhnU0272.png" title="Image 6-http協議分析.png" width="480" height="229" border="0" hspace="0" vspace="0" style="width:480px;height:229px;" alt="wKioL1kyuazTOXDFAABFCiDhnU0272.png" />

  在http協議這一章,我將先後介紹六個部分,本文先介紹http的協議版本。

2.http協議版本

650) this.width=650;" src="https://s1.51cto.com/wyfs02/M00/97/C7/wKiom1kyumOy55t4AAAhzZljj44537.png" title="Image 7-http-version.png" alt="wKiom1kyumOy55t4AAAhzZljj44537.png" />

  http協議的曆史並不長,從1991的0.9版本到現在(2017)僅僅才20多年,算算下來,http還是正處青年,正是大好發展的好時光。雖然短短不到27年,卻改變了人類認識世界的方式。在這裡,必須給偉大的先賢們鞠躬致敬。

650) this.width=650;" src="https://s3.51cto.com/wyfs02/M00/97/C7/wKiom1kyvALTOwIwAACB_MQAMRg571.png" title="Image 8-version0.9.png" width="480" height="343" border="0" hspace="0" vspace="0" style="width:480px;height:343px;" alt="wKiom1kyvALTOwIwAACB_MQAMRg571.png" />

  0.9版本功能十分簡單,僅僅一個get功能,get翻譯過來就是獲得,在這裡指擷取資源。因為功能簡陋,自然得不到很大的應用,所以在五年之後發布了新的版本1.0。

  1.0版本內容豐富,增加了很多的功能。get擷取資源,post發送資源,head儲存了資源的首部資訊。多用途互連網郵件擴充(MIME,Multipurpose Internet Mail Extensions)是一個互連網標準,它擴充了電子郵件標準,支援多媒體資料傳送,極大了豐富了http協議。

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/97/C9/wKioL1kyvXrTnyG9AABEuFqPHtw111.png" title="Image 10-1.0version.png" width="480" height="173" border="0" hspace="0" vspace="0" style="width:480px;height:173px;" alt="wKioL1kyvXrTnyG9AABEuFqPHtw111.png" />

  http1.0版本請求格式形如這樣:    

    GET / HTTP/1.0

    User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5)

    Accept: */*

 回應格式形如這樣:    

    HTTP/1.0 200 OK 

    Content-Type: text/plain

    Content-Length: 137582

    Expires: Thu, 05 Dec 1997 16:00:00 GMT

    Last-Modified: Wed, 5 August 1996 15:55:28 GMT

    Server: Apache 0.84    

    <html>

      <body>Hello World</body>

    </html>

  儘管http1.0功能已經十分強大,但仍然還有缺點。每個TCP串連只能發送一個請求,因此TCP串連的建立成本很高,效率低下,因此後來引入了keep-alive機制,即持久串連。簡單理解,即長時間串連不間斷。

 http1.0功能十分強大,因此加大了人們對http協議的依賴,有了廣泛的應用與觀眾的掌聲,http協議的研發人員像是打了雞血一般,僅僅時隔半年版就發布了http1.1。人們常說慢工出細活,對不起,在這不適用。在這裡更像是時間的濃縮的產品就是精華。http1.1功能更為強大,以至於到今天還在應用。

 http1.1協議的優點如下:        

    1.增強了緩衝功能,目前流行版本

    2.引入了持久串連(persistent connection)

    3.引入了管道機制(pipelining),用戶端可以同時發送多個請求。

    4.引入Content-Length欄位,標記內容長度

    5.引入分塊傳輸編碼,極大增加了傳輸的速度

    6.更豐富的method:GET, POST, HEAD,PUT, DELETE,TRACE, OPTIONS,HOST

 http1.1的資料按次序通訊,有隊頭堵塞問題。阻塞了自然要疏通,疏通的常見方式有兩種:

   1.減少請求數

   2.同時多開持久串連

 減少請求數很好理解,不再囉嗦。多開持久串連,本質上也是減少請求數,規避不必要的去頻繁斷開。因這兩種方式,由此產生了很多解決技巧,技巧有如下:

   1.合并指令碼和樣式表,

   2.將圖片嵌入CSS代碼

   3.網域名稱分區(domain sharding)


 基於效率以及安全的考慮,http2強勢登場。http2的前身是google公司的SPDY協議,SPDY協議非常強大,http研發工程師,自感亞曆山大,所以又火急火燎地研發除了http2協議。http2有如下特點:

    1.前身:SPDY 協議(google)

    2.徹底的二進位協議,頭資訊和資料體都是二進位,效率提升,加大安全

    3.多工(MultiPlexing),即串連共用,規避隊頭堵塞

    4.資料流傳輸,增加傳輸效率

    5.頭資訊壓縮,減小了傳輸的大小

    6.伺服器推送

 至此,http協議版本介紹完畢,感謝觀賞,下一節介紹一次完整的http請求過程。

 參考資料:

  • http://www.ruanyifeng.com/blog/2016/08/http.html

  • http://www.alloyteam.com/2016/07/httphttp2-0spdyhttps-reading-this-is-enough/

本文出自 “完成比完美更重要” 部落格,請務必保留此出處http://powermichael.blog.51cto.com/12450987/1931998

思維導圖分析http之http協議版本

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.