您好,登錄后才能下訂單哦!
httpd協議之http協議版本
1.結構總覽
在http協議這一章,我將先后介紹上圖六個部分,本文先介紹http的協議版本。
2.http協議版本
http協議的歷史并不長,從1991的0.9版本到現在(2017)僅僅才20多年,算算下來,http還是正處青年,正是大好發展的好時光。雖然短短不到27年,卻改變了人類認識世界的方式。在這里,必須給偉大的先賢們鞠躬致敬。
0.9版本功能十分簡單,僅僅一個get功能,get翻譯過來就是獲得,在這里指獲取資源。因為功能簡陋,自然得不到很大的應用,所以在五年之后發布了新的版本1.0。
1.0版本內容豐富,增加了很多的功能。get獲取資源,post發送資源,head保存了資源的首部信息。多用途互聯網郵件擴展(MIME,Multipurpose Internet Mail Extensions)是一個互聯網標準,它擴展了電子郵件標準,支持多媒體數據傳送,極大了豐富了http協議。
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/
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。