21CTO指南:
HTTP/2是HTTP的最新版本。HTTP是一種用于在互聯(lián)網(wǎng)上請(qǐng)求和接收頁(yè)面和數(shù)據(jù)的網(wǎng)絡(luò)協(xié)議,即將取代HTTP/1.1。HTTP/1.x版本已經(jīng)運(yùn)行二十多年了,該更新了。
HTTP/2和HTTP/1/1的區(qū)別
HTTP/2的全稱:HTTP/2.0。它源于谷歌在2009年制定的SPDY協(xié)議。
HTTP/1.1的一些缺陷
這個(gè)協(xié)議是在網(wǎng)頁(yè)大小比較小,不能超過(guò)100K的時(shí)候創(chuàng)建的,沒(méi)有CSS。
目前互聯(lián)網(wǎng)網(wǎng)站首頁(yè)的數(shù)據(jù)下載量很大,達(dá)到190萬(wàn),更重要的是,首頁(yè)平均有100多個(gè)對(duì)象元素,這100個(gè)對(duì)象被抓取后才能顯示整個(gè)首頁(yè)。
HTTP1.1規(guī)定一個(gè)客戶端最多可以連接兩臺(tái)主機(jī),所以智能網(wǎng)站會(huì)在不違反規(guī)定的情況下使用多個(gè)主機(jī)名,可以減少頁(yè)面的加載時(shí)間。隨著時(shí)間的推移,法規(guī)中的限制已經(jīng)取消?,F(xiàn)在,客戶端使用6-8個(gè)連接到每臺(tái)主機(jī),但使用這種技術(shù)來(lái)實(shí)現(xiàn)大量連接仍然存在限制。大多數(shù)網(wǎng)站需要38個(gè)TCP連接才能顯示網(wǎng)站,而且這個(gè)數(shù)字還在慢慢增加。當(dāng)您將資源或圖片放入另一臺(tái)主機(jī)時(shí),您不能使用任何cookie。
HTTP1.1只能做幾個(gè)基本的表單驗(yàn)證和簡(jiǎn)單的效果,剩下的需要Java介入來(lái)處理;
HTTP1.1帶寬占用率高;
使用單個(gè)Ajax異步處理;
單頁(yè)應(yīng)用和框架已經(jīng)使用了很多年。比如我們要同時(shí)請(qǐng)求幾個(gè)頁(yè)面,HTTP 1.1是處理不了的。
HTTP/2.0的主要目標(biāo)是減少延遲,提高通信效率。其特點(diǎn)包括以下幾點(diǎn)。
HTTP/2.0的特性
1.HTTP/2使用二進(jìn)制數(shù)據(jù)流,而HTTP/1.x使用低效的文本數(shù)據(jù)。
2.HTTP/2支持報(bào)頭壓縮
請(qǐng)求之后,返回的數(shù)據(jù)包括描述性信息:來(lái)源、類型、長(zhǎng)度、可以緩存的時(shí)間等。并在HTTP/2中壓縮。
3.HTTP/2采用流水線傳輸
在HTTP1.1中,服務(wù)器必須按照接收請(qǐng)求的順序發(fā)送和接收響應(yīng)。HTTP/2支持異步,可以更快的處理響應(yīng)。
4.HTTP/2支持復(fù)用
在HTTP1.1中,任何時(shí)候在TCP連接上只能處理一個(gè)請(qǐng)求。當(dāng)瀏覽器同時(shí)請(qǐng)求多個(gè)連接時(shí),如果是大型或慢速資源,文件下載會(huì)延遲。HTTP/2可以允許單個(gè)連接同時(shí)發(fā)送多個(gè)請(qǐng)求和接收多個(gè)響應(yīng)。
假設(shè)兩列火車(chē)代表不同的流量。請(qǐng)看下圖:
然后,它們被安排在一個(gè)用于傳輸?shù)倪B接上,就像在單一軌道上駕駛一樣:
HTTP/2連接可以承載數(shù)十或數(shù)百個(gè)流的復(fù)用。多路復(fù)用意味著來(lái)自許多數(shù)據(jù)流的數(shù)據(jù)包可以混合并通過(guò)同一連接傳輸,兩個(gè)不同的序列混合并一起傳輸。當(dāng)它們到達(dá)目的地時(shí),它們被分解成兩列不同的火車(chē)。
在HTTP1中,您需要保持連接以連續(xù)發(fā)送和接收數(shù)據(jù),這導(dǎo)致數(shù)據(jù)擁塞和RTT浪費(fèi)。在HTTP2中,可以隨時(shí)切斷所有的流,提取數(shù)據(jù)包。
5.HTTP/2支持服務(wù)器推送
服務(wù)器可以在請(qǐng)求之前發(fā)送資源??蛻舳苏?qǐng)求一個(gè)資源x,服務(wù)器判斷客戶端可能還需要資源,將資源z推給客戶端,無(wú)需提前詢問(wèn)客戶端??蛻舳耸盏胶?,可以緩存以備后用。
例如,如果您在網(wǎng)頁(yè)中引用一個(gè)js腳本,當(dāng)下載HTTP1.x時(shí),瀏覽器會(huì)用HTML解析它,并遇到
HTTP2是否明顯優(yōu)于1.x?
結(jié)果可能不一致。但是,HTTPS測(cè)試工具證明HTTP2比HTTP1.x快10倍,并且使用了加密連接。
那么現(xiàn)在可以用HTTP2.0了嗎?
當(dāng)然可以。
前提是只有Web服務(wù)器和瀏覽器都支持,才能啟用HTTP/2。如果任一端不匹配,就會(huì)回落到HTTP/1.1。
據(jù)統(tǒng)計(jì),全球1000萬(wàn)個(gè)網(wǎng)站中,約有12%已經(jīng)支持HTTP/2.0。
可喜的是,所有新的瀏覽器:Firefox、Safari、Edge、Chrome等基于Blink內(nèi)核的瀏覽器都得到了全面支持。
綜合匯編來(lái)自:
1.《http協(xié)議是什么協(xié)議 什么是HTTP/2.0 協(xié)議》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無(wú)關(guān),侵刪請(qǐng)聯(lián)系頁(yè)腳下方聯(lián)系方式。
2.《http協(xié)議是什么協(xié)議 什么是HTTP/2.0 協(xié)議》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。
3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來(lái)源地址,http://f99ss.com/jiaoyu/888857.html