HTTP 2.0簡介
HTTP 2.0即超文本傳輸協議 2.0,是下一代HTTP協議。是由互聯網工程任務組(IETF)的Hypertext Transfer Protocol Bis (httpbis)工作小組進行開發。是自1999年http1.1發布后的首個更新。HTTP 2.0在2013年8月進行首次合作共事性測試。在開放互聯網上HTTP 2.0將只用于https://網址,而 http://網址將繼續使用HTTP/1,目的是在開放互聯網上增加使用加密技術,以提供強有力的保護去遏制主動攻擊。DANE RFC6698允許域名管理員不通過第三方CA自行發行證書。
IETF會讓所有互聯網通路默認選擇的方式來引入加密,互聯網專家們將新一代加密協議稱為“HTTP 2.0”。
協議目標:
異步連接多路復用; 頭部壓縮; 請求/響應管線化;保持與HTTP 1.1語義的向后兼容性也是該版本的一個關鍵目標。SPDY是一種HTTP兼容協議,由Google發起,Chrome、Opera、Firefox以及Amazon Silk等瀏覽器均已提供支持。HTTP實現的瓶頸之一是其并發要依賴于多重連接。HTTP管線化技術可以緩解這個問題,但也只能做到部分多路復用。此外,已經證實,由于存在中間干擾,瀏覽器無法采用管線化技術。SPDY在單個連接之上增加了一個幀層,用以多路復用多個并發流。幀層針對HTTP類的請求響應流進行了優化,因此運行在HTTP之上的應用,對應用開發者而言只要很小的修改甚至無需修改就可以運行在SPDY之上。SPDY對當前的HTTP協議有4個改進:
多路復用請求; 對請求劃分優先級; 壓縮HTTP頭; 服務器推送流(即Server Push技術);SPDY試圖保留HTTP的現有語義,所以cookies、ETags等特性都是可用的。[3]
如何在 Apache 中啟用 HTTP/2
剛發布的 Apache httpd 2.4.17 終于支持 HTTP/2 了。這個頁面給出了一些如何構建/部署/配置的建議。目的是為了大家發現 bugs 時能升級它,或者給一些能更好工作的建議。
最后,這會歸并回到官方 Apache 文檔,這里只會留下一個到那里的鏈接。暫時我們還沒做到。
編譯支持 HTTP/2
在你編譯版本之前,你要進行一些配置。這里有成千上萬的選項。和 HTTP/2 相關的是:
--enable-http2 |
啟用在 Apache 服務器內部實現該協議的 ‘http2' 模塊。
--with-nghttp2=<dir> |
指定 http2 模塊需要的 libnghttp2 模塊的非默認位置。如果 nghttp2 是在默認的位置,配置過程會自動采用。
--enable-nghttp2-staticlib-deps |
很少用到的選項,你可能想將 nghttp2 庫靜態鏈接到服務器里。在大部分平臺上,只有在找不到共享 nghttp2 庫時才有用。
如果你想自己編譯 nghttp2,你可以到 nghttp2.org 查看文檔。最新的 Fedora 以及其它版本已經附帶了這個庫。
新聞熱點
疑難解答