HTTP/2有哪些值得期待的特性

infoq發表於2014-02-06

  隨著HTTP/2工作組的工作接近尾聲以及新標準的實現開始出現,工作組主席Mark Nottingham寫了一篇部落格對新協議中9件值得期待的事情發表了看法:

  1. 使用與HTTP相同的API。就像Mark提到的:“要想讓HTTP/2成功,就必須讓它能在現有的Web中正常工作。因此我們所做的努力是讓現有的HTTP更好地工作,而不是去改變這個協議。”儘管也許有機制能讓你優化一些新功能,但一般情況下不會有新的方法、header和狀態碼。
  2. 更廉價的請求。“HTTP/2使用多路技術,允許多個訊息在一個連線上同時交差,因此一個大的響應(或者一個需要消耗伺服器很長時間的響應)並不會阻止其它的響應。此外,它增加了頭壓縮(header compression),因此即使非常小的請求,其請求和響應的header都只會佔用很小比例的頻寬。這對於移動平臺來說,是非常重要的。因為太大的請求header,再加上頁面所需的大量資源經過幾個來回後,很可能導致頁面載入失敗。”
  3. 新協議對網路和服務提供了更友好的設計。“HTTP/2將使用更少的連線,因此伺服器和網路的負載都將減少。這對於越來越擁擠的網路來說具有非常重要的意義。HTTP/1採用多連線的方式實現並行資料傳輸,加劇了網路擁擠的問題。”HTTP/2對每臺主機只需一個單獨連線,而且只要可能,應儘量將多個網站合併到一臺主機上。
  4. HTTP/2引入了“服務端推(server push)”的概念,它允許服務端在客戶端需要資料之前就主動地將資料傳送到客戶端快取中,從而提高效能。當然,在某些場景下,客戶端可能並不希望這麼做,因此HTTP/2也允許客戶端拒絕。
  5. 當客戶端(瀏覽器)改變主意,不再需要某個請求的響應時,HTTP/1的客戶端只能關閉連線,而新協議則提供了更好的解決辦法。“HTTP/2增加了RST_STREAM frame,允許客戶端改變主意。當瀏覽器進行頁面跳轉或者使用者取消下載時,它可以防止建立新連線,避免浪費所有頻寬。”
  6. HTTP/2提供更多的加密支援,Mark早前的文章說明了其優缺點
  7. 如果你喜歡那些可以監聽和人工解析HTTP請求和響應的功能,例如使用telnet連線伺服器,那麼你要做好這些功能不再可用的準備。HTTP/1是基於文字的協議而HTTP/2是基於二進位制的。“儘管二進位制協議的解析具有更小的開銷,以及更小的網路消耗,但這個巨大變化的真正原因是二進位制協議更簡單,因此更少錯誤,這是它的優點。”Mark就此進行了討論,結果表明確實如此。例如,如何界定文字,HTTP/1的嚴重缺陷之一是脆弱的安全性。“HTTP/1的文字特性也導致了一些安全問題。因為不同的實現對於如何解析一條訊息有著不同的決定,因此惡意團體能夠以某種的方式入侵(例如,通過response splitting attack)”
  8. 別期望HTTP/2能夠奇蹟般地提升服務端或客戶端的效能。“關於新協議,更準確的看法是,它清除了一些制約效能的重要障礙。只有當客戶端和服務端都學會了如何以及何時使用它的先進特性,效能才會開始逐漸提升。”正如Mark指出的,當今絕大部分網站是基於HTTP/1開發的,都不可避免地受其限制。只有經過時間推移,當它們經過重新配置後,才能發揮HTTP2所提供的先進特性。“此外,HTTP/2的網路友好特性的缺點是可能導致TCP擁塞控制變得更加突出。因為瀏覽器對每臺主機只建立一個連線,初始視窗和丟包將會更加明顯。”
  9. HTTP/2並不是發展的終點,團隊已經在考慮後續的發展。“現在人們非常期待HTTP/2正式釋出,因此一些高階(和實驗性)的特性並沒有加入到此版本中。例如推送TLS認證和DNS條目到客戶端,兩者都能夠提升效能。如果實驗順利的話,也許HTTP/3會包含這些。當然,HTTP/3也可能是個解決所有目前未發現的問題的版本。但到目前為止,信心正在不斷地增長。無論是社群釋出的SPDY的體驗,還是HTTP/2的各種實現都表明HTTP/2已經接近完成了。”

  以上這些就是Mark對於即將到來的HTTP/2的精彩和準確的概覽。你覺得這些功能怎麼樣?哪些會讓你有些擔心?當它成為主流,你開始使用時,哪些又會讓你覺得很興奮?

  英文原文:What to Expect From HTTP/2

相關文章