HTTP2.0協議草案面世 基本協議單位為幀
http2協議的(de)草案已經(jing)出來了,閱讀了一下網上的(de)中文(wen)版,http2盡可能的(de)兼容http1.1。改進了http1.1協議的(de)不(bu)足。
http1.0和http1.1的缺點:
1.http1.0只(zhi)允許(xu)在一(yi)個(ge)連接(jie)上建立(li)當前未完成的(de)請求(qiu)
2.http1.1管道(dao)只(zhi)部(bu)分處理(li)了請求并(bing)發和包頭堵(du)塞(sai)問題,客(ke)戶端(duan)多建(jian)立TCP連接,減少延遲
3.報(bao)頭字段經常(chang)重復和冗長(chang),數據(ju)包變大(da),容(rong)易造(zao)成初始TCP端口的堵塞,多(duo)建(jian)立(li)幾個TCP連(lian)接(jie)
http2x協議解決(jue)之道:
1.優化基(ji)礎(chu)連接的語義(yi)映(ying)射,例如同(tong)一個連接上建立(li)交錯的請求和響應,使用高效率(lv)編碼的報頭(tou)字段
2.允許請(qing)求的優先級,讓更多重要的請(qing)求先完成
http2協議的特點:
1.http2中最(zui)基本的(de)協(xie)議單(dan)位是幀。每個幀都有(you)不同的(de)類型和用途(tu)。例如,報頭(HEADERS)和數據(ju)(DATA)幀組成了基本的(de)http請(qing)求(qiu)(qiu)和響應。幀包(bao)含的(de)HTTP報頭字段是壓縮的(de)。HTTP請(qing)求(qiu)(qiu)有(you)可能是高度(du)冗余的(de),因此壓縮能顯著(zhu)減少(shao)請(qing)求(qiu)(qiu)和響應的(de)大小。
2.請求(qiu)多路(lu)復用(yong):一(yi)個流(liu)(liu)上分配多個HTTP請求(qiu)響應交換(huan),流(liu)(liu)在很大(da)程度上是(shi)相(xiang)互獨立的,因為(wei)一(yi)個請求(qiu)上
的阻塞和終止不(bu)會影響其(qi)他請求的處理(li)。
3.流(liu)量控制和優(you)先級(ji)確(que)(que)(que)保正確(que)(que)(que)使用復用流(liu),流(liu)量控制有助于確(que)(que)(que)保只傳(chuan)播接受需要的數(shu)據,優(you)先級(ji)確(que)(que)(que)保有限的資源能被重要的請求使用
4.添加了一種(zhong)新(xin)的(de)交互模式,即(ji)服務(wu)器能推(tui)送消息給客戶端。服務(wu)器推(tui)送允(yun)許服務(wu)端預測客戶端需要來發送
數據(ju)給客戶(hu)端(duan),交換網絡使用(yong)以阻(zu)塞潛在的延(yan)遲增長。服務器(qi)通過復(fu)用(yong)一個以PUSH_PROMISE幀發(fa)送的請求來實現推送,然后(hou)服務端(duan)可以在一個單(dan)獨的流里面發(fa)送響應(ying)給這個合成的請求。