HTTP2.0協(xié)議草案面世 基本協(xié)議單位為幀
http2協(xié)議的草案已經(jīng)出來了,閱讀了一下網(wǎng)上的中文版,http2盡可能的兼容http1.1。改進(jìn)了http1.1協(xié)議的不足。
http1.0和http1.1的缺點(diǎn):
1.http1.0只允許在一個連接上建立當(dāng)前未完成的請求
2.http1.1管道只部分處理了請求并發(fā)和包頭堵塞問題,客戶端多建立TCP連接,減少延遲
3.報頭字段經(jīng)常重復(fù)和冗長,數(shù)據(jù)包變大,容易造成初始TCP端口的堵塞,多建立幾個TCP連接
http2x協(xié)議解決之道:
1.優(yōu)化基礎(chǔ)連接的語義映射,例如同一個連接上建立交錯的請求和響應(yīng),使用高效率編碼的報頭字段
2.允許請求的優(yōu)先級,讓更多重要的請求先完成
http2協(xié)議的特點(diǎn):
1.http2中最基本的協(xié)議單位是幀。每個幀都有不同的類型和用途。例如,報頭(HEADERS)和數(shù)據(jù)(DATA)幀組成了基本的http請求和響應(yīng)。幀包含的HTTP報頭字段是壓縮的。HTTP請求有可能是高度冗余的,因此壓縮能顯著減少請求和響應(yīng)的大小。
2.請求多路復(fù)用:一個流上分配多個HTTP請求響應(yīng)交換,流在很大程度上是相互獨(dú)立的,因?yàn)橐粋€請求上
的阻塞和終止不會影響其他請求的處理。
3.流量控制和優(yōu)先級確保正確使用復(fù)用流,流量控制有助于確保只傳播接受需要的數(shù)據(jù),優(yōu)先級確保有限的資源能被重要的請求使用
4.添加了一種新的交互模式,即服務(wù)器能推送消息給客戶端。服務(wù)器推送允許服務(wù)端預(yù)測客戶端需要來發(fā)送
數(shù)據(jù)給客戶端,交換網(wǎng)絡(luò)使用以阻塞潛在的延遲增長。服務(wù)器通過復(fù)用一個以PUSH_PROMISE幀發(fā)送的請求來實(shí)現(xiàn)推送,然后服務(wù)端可以在一個單獨(dú)的流里面發(fā)送響應(yīng)給這個合成的請求。