1. 程式人生 > >HTTP協議知多少-關於http1.x、http2、SPDY的相關知識

HTTP協議知多少-關於http1.x、http2、SPDY的相關知識

關閉 pre text 速度 到來 機會 網站管理系統 image 成功

作為網站開發的基礎協議,我們知道瀏覽器上都有輸出http這四個字母,這意味著什麽呢?

這就是最基礎的HTTP協議。

逐浪君今天為各位大人準備了一些HTTP技術的知識,來和大家分享。

以下圖為例:

技術分享

這一個加載界面,至少用到了http/1.1、SPDY、Http/2(簡稱h2)三種瀏覽器技術。

先說HTTP/1.1:

HTTP1.1(Hypertext Transfer Protocol Version 1.1)超文本傳輸協議-版本1.1
它是用來在Internet上傳送超文本的傳送協議。它是運行在TCP/IP協議簇之上的HTTP應用協議,它可以使瀏覽器更加高效,使網絡傳輸減少。任何服務器除了包括HTML文件以外,還有一個HTTP駐留程序,用於響應用用戶請求。您的瀏覽器是HTTP客戶,向服務器發送請求,當瀏覽器中輸入了一個開始文件或點擊了一個超級鏈接時,瀏覽器就向服務器發送了HTTP請求,此請求被送往由URL指定的IP地址。駐留程序接收到請求,在進行必要的操作後回送所要求的文件。

HTTP1.1支持續連接.通過這種連接,就有可能在建立一個TCP連接後,發送請求並得到回應,然後發送更多的請求並得到更多的回應.通過把建立和釋放TCP連接的開銷分攤到多個請求上,則對於每個請求而言,由於TCP而造成的相對開銷被大大地降低了.而且,還可以發送流水線請求,也就是說在發送請求1之後的回應到來之前就可以發送請求2.也可以認為,一次連接發送多個請求,由客戶機確認是否關閉連接,而服務器會認為這些請求分別來自不同的客戶端。
與之相對的HTTP1.0
當連接建立起來以後,瀏覽器發送一個請求,之後一個回應消息被送回來.然後TCP連接被釋放.這在早期,Web頁面通常只包含HTML文本,在這種情況下,這樣的做法已經足夠了.但是,現在的網頁一般還含有大量的圖標,圖象以及其他很養眼的內容,所以建立一個TCP連接僅僅傳輸一個圖標,則顯得代價太昂貴了.

技術分享

再說HTTP/2:

HTTP/2,也就是超文本傳輸協議第2版,不論是1還是2,HTTP的基本語義是不變的,比如方法語義(GET/PUST/PUT/DELETE),狀態碼(200/404/500等),Range Request,Cacheing,Authentication、URL路徑, 不同的主要是下面幾點:

HTTP2 主要是針對 Http1的下面幾個問題做的優化:

    • 並行能力有限

每一個源最大只支持6個請求
管道在實際使用時不起作用
競爭性的TCP流,強制快速重傳(Spurious retransmissions)
額外的握手、內存緩沖等

    • 客戶端請求隊列

隊首阻塞
延遲的請求分發

    • 較高的協議負載

頭信息和Cookies大約要800字節
HTTP元數據沒有壓縮

另外,HTTP/1.1只允許由客戶端主動發起請求,服務端只能等待客戶端發送請求,這對於滿足預加載的現狀是一種桎梏。

HTTP 2.0 的出現,相比於 HTTP 1.x ,大幅度的提升了 web 性能。在與 HTTP/1.1 完全語義兼容的基礎上,進一步減少了網絡延遲。而對於前端開發人員來說,無疑減少了在前端方面的優化工作。本文將對 HTTP 2.0 協議 個基本技術點進行總結,聯系相關知識,探索 HTTP 2.0 是如何提高性能的。


初露鋒芒

HTTP/2: the Future of the Internet 這是 Akamai 公司建立的一個官方的演示,用以說明 HTTP/2 相比於之前的 HTTP/1.1 在性能上的大幅度提升。 同時請求 379 張圖片,從Load time 的對比可以看出 HTTP/2 在速度上的優勢。

技術分享

技術分享再說SPDY,這是Google創立的一種技術,誕生之初http/2並未定稿,所以用於解決過渡期問題。

HTTP/1.1在1999年由RFC 2616定為標準,從那以後,整個互聯網就一直基於它在運行,其間有人提出了總共10個更新版本或替代協議,但是有些版本被認為還有改進的空間,尤其是性能方面。Google也是嘗試改進HTTP/1.1的公司之一,他們在2009年發布了SPDY協議。通常情況下,這種嘗試獲得成功的機會微乎其微,因為互聯網有龐大的歷史包袱,但Google有一件武器能使SPDY流行起來:Chrome。他們搭建了自己的網站,修改了Chrome來支持SPDY,用戶被其更好的性能所吸引,把壓力留給了其他網站和瀏覽器開發商。

根據W3Techs的統一,目前,在全球超過12億的網站中,有3.4%使用了SPDY協議。這個比例看起來不高,但這份名單中包括了一些最大的網站,有Google、Facebook、Yahoo!、Twitter、YouTube、Wordpress等,這使得互聯網每天通過SPDY協議來承載的頁面流量在總流量數中占了相當大的份額。

負責HTTP/2.0標準化工作的IETF HTTPBIS工作小組在2012年的一次討論中,決定把SPDY作為HTTP/2.0的原型,但一開始他們沒有想完全采用它。微軟也提出了他們自己的提案,稱為HTTP Speed+Mobility。三年後,看起來SPDY已經在競爭中勝出,它已經被HTTPBIS工作小組采納為HTTP/2.0,並且進入標準化流程的最後階段。

由此,Google宣布SPDY於2016年頭退休,轉而采用HTTP/2.0。對於Google旗下的網站和Chrome來說,只是換了個協議名字,協議本身沒什麽變化。最新的Chrome 40裏面有個SPDY/4開關,有興趣測試HTTP/2.0的人可以打開它。Google也打算不再讓Chrome支持NPN協議,轉而支持ALPN協議,並建議開發者使用最新的TLS擴展。

下圖是逐浪軟件www.z01.com官網在http/1.1和http/2.0協議下的加載速度實測圖,可以看到差別在10倍以上,值得部署。

技術分享

關於部署HTTP/2,首先擁有高品質的服務器(win2016+ssl是必要前提條件),同時需要有一個卓越的CMS支持,在這方面,Zoomla!逐浪CMS是國內產網站門戶系統中的佼佼者,值得推薦。

PS:繼2016年,Zoomla!逐浪CMS全面啟用SSL,成為國內首家支持SSL金融級網站內容管理系統後。

2017年7月15日,逐浪CMS官方宣布:全面為所有用戶提供HTTP/2高速門戶接入和技術規範服務,並融入到全新的Zoomla!逐浪CMS產品中,與其中的微信建站、APP生成、站群、辦公系統結合一體,打造中國優秀的網站管理系統。

原文:https://www.z01.com/blog/products/3180.shtml

HTTP協議知多少-關於http1.x、http2、SPDY的相關知識