HTTP規(guī)范的編輯們已經(jīng)發(fā)布了2.0版本的首個(gè)草案,它直接復(fù)制于SPDY,并將作為后續(xù)改進(jìn)的基礎(chǔ)。很多修改還有待完成,例如添加新特性、移除現(xiàn)有特性以及修改線上文檔等。供測(cè)試實(shí)現(xiàn)使用的草案預(yù)計(jì)明年年初發(fā)布。
HTTP 2.0由IETF的Hypertext Transfer Protocol Bis(httpbis)工作組開發(fā),這將成為1999年1.1版本(RFC 2616)發(fā)布以來的首個(gè)新版本。
HTTP 2.0的目標(biāo)包括:
- 異步連接多路復(fù)用
- 頭部壓縮
- 請(qǐng)求/響應(yīng)管線化
保持與HTTP 1.1語義的向后兼容性也是該版本的一個(gè)關(guān)鍵目標(biāo)。
SPDY是一種HTTP兼容協(xié)議,由Google發(fā)起,目前Chrome、Opera、Firefox以及Amazon Silk等瀏覽器均已提供支持。
HTTP實(shí)現(xiàn)的瓶頸之一是其并發(fā)要依賴于多重連接。HTTP管線化技術(shù)可以緩解這個(gè)問題,但也只能做到部分多路復(fù)用。此外,已經(jīng)證實(shí),由于存在中間干擾,現(xiàn)有的瀏覽器無法采用管線化技術(shù)。
SPDY在單個(gè)連接之上增加了一個(gè)幀層,用以多路復(fù)用多個(gè)并發(fā)流。幀層針對(duì)HTTP類的請(qǐng)求響應(yīng)流進(jìn)行了優(yōu)化,因此現(xiàn)在運(yùn)行在HTTP之上的應(yīng)用,對(duì)應(yīng)用開發(fā)者而言只要很小的修改甚至無需修改就可以運(yùn)行在SPDY之上。
SPDY對(duì)當(dāng)前的HTTP協(xié)議有4個(gè)改進(jìn):
- 多路復(fù)用請(qǐng)求
- 對(duì)請(qǐng)求劃分優(yōu)先級(jí)
- 壓縮HTTP頭
- 服務(wù)器推送流(即Server Push技術(shù))
SPDY試圖保留HTTP的現(xiàn)有語義,所以cookies、ETags等特性都是可用的。
SPDY中的很多架構(gòu)方法(如多路復(fù)用),W3C HTTP-NG工作組曾經(jīng)進(jìn)行過早期的探索,但該工作組已于1998年暫停。改進(jìn)HTTP這一問題已經(jīng)討論了多年,不久前還成了InfoQ的愚人節(jié)玩笑。