HTTP/2.0 草案初稿釋出

oschina發表於2013-08-01

  HTTP/2.0的第一個可實現的草案在7月8日由IETF的HTTPbis工作組釋出。HTTP的2.0版是基於Google研發的SPDY協議 — 實際上,草案初稿是在SPDY的規格描述拷貝的基礎上進行修改的。

  Jeffrey Beall拍攝

  HTTP/2.0計劃用來作為HTTP/1.1的可選替換者, 而不是完全將其替代。理由很充分:新版本與舊的很像,但是新版本在設計上有很重要的不同,使得可以更有效的進行網路通訊。

  重要的是要注意,HTTP2.0仍是一個草案。毫無疑問的是,在2014年10月份作為一個建議標準提交給IESG時,與現在的草案相比肯定會有許多改動。值得注意的是,通過客戶端和伺服器雙方的對話來決定所有采用的協議,HTTP1.1和HTTP2.0將有望一起使用。對使用HTTP1.1的後端開發者而言,沒有一個即將到來的硬性期限去必須使用HTTP2.0:HTTP1.1在一個可預見的期限內,仍然是一個可使用的標準。前端Web開發將發生翻天覆地的變化,網站會將開始使用2.0版本的新功能。

  由於高質量的HTTP2.0的實現庫的出現,HTTP API介面將不會有太大影響。只要2.0是和1.1版本一樣易於實現,我們能夠使用新特徵來更加高效的使用頻寬和持久連線。目前2.0的二進位制版本的概念版本爭議還很大,希望大部分都能抽象實現,提高可用性。所以不要把你的像手電筒和乾草叉這樣的實際東西拿出來,直到我們真正遇到實際問題才可以!

 流和多路傳輸

  對應前端和REST APIs開發者而言,一個非常重要和有趣的變化是:連線將保持開放,只要他們留在該網頁或網站。這個特性在1.1版本中需要建立一些持久連線才可以實現,新版本增加了支援在一個底層TCP連線下的多個幀流。對這些流可以設定優先權,傳輸資料的順序只和同一個流的上下文環境有關。

  這將使伺服器傳送第最重要的資料,同時等待傳送次的重要資料。對於同時載入每個必要的資源,我們現在可以開啟多個流在同一個連線下而不是開啟多個連線,這樣減少了HTTP的負荷。

 伺服器資源推送

  另外一個新概念就是伺服器通過既定的連線推送額外資料的能力。雖然這個概念並不是革命性的,畢竟歸根結底它是TCP協議本身的特性。然而這種能力將會給廣泛使用的HTTP帶來不小的便利,也將有可能使HTTP API的易用性和完全雙工的TCP緊密結合在一起。       

  這種能力主要是為網頁而設計的。高效網站減少網站請求的通常作法是通過精簡資源比如圖片和指令碼的大小來提高網頁渲染速度。有了推送的功能,伺服器將能夠主動告訴客戶端需要請求哪些附加資源來渲染介面。

  這個概念對於APIs使用來說也將很有用。例如API響應能夠被更容易的進行批處理。一些已有的APIs可以批量呼叫,允許多個API的呼叫在一個請求裡完成。更巧妙的一種做法可能是利用伺服器推送這些響應而不是將這些響應組裝到一個響應裡面。

 您將追隨HTTP/2.0的腳步嗎?    

  任何使用HTTP APIs開發的想站在技術最前沿的開發者至少需要閱讀2.0規範。有了這些知識你才可以靈活利用新的或優化過的APIs。這不是一個能夠讓每個人都將立即使用的高度突破性的技術。畢竟到目前為止它被提交到ISEG還不到一年。

  然而,SPDY只是三年前公佈的,目前已經有 ChormeFirefoxOPera瀏覽器支援。 GoogleTwitterFacebook公司也已經開始支援SPDY。隨著HTTP/2.0規範標準逐步的公開(Google已經擁有了SPDY的商標),應該不至於遠遠落後吧。

  英文原文:HTTP/2.0 Initial Draft Released

  相關文件:SPDY 是什麼?如何部署 SPDY?

相關文章