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