HTTP要升級 網(wǎng)頁瀏覽更快速
超文本傳輸協(xié)議,簡稱HTTP,是構(gòu)成萬維網(wǎng)的關(guān)鍵要素。HTTP是客戶端瀏覽器或其他程序與網(wǎng)頁服務(wù)器之間的應(yīng)用層通信協(xié)議。在Internet上的網(wǎng)頁服務(wù)器上存放的都是超文本信息,客戶機需要通過HTTP協(xié)議傳輸所要訪問的超文本信息。HTTP包含命令和傳輸信息,不僅可用于網(wǎng)頁訪問,也可以用于其他互聯(lián)網(wǎng)/內(nèi)聯(lián)網(wǎng)應(yīng)用系統(tǒng)之間的通信,從而實現(xiàn)各類應(yīng)用資源超媒體訪問的集成。
本文引用地址:http://butianyuan.cn/article/270048.htm超文本傳輸協(xié)議已經(jīng)問世幾十年,互聯(lián)網(wǎng)工程指導(dǎo)組最近的一項通告透露十五年來的第一次重大更新——HTTP/2即將到來。
最初的HTTP協(xié)議是萬維網(wǎng)1991年誕生時蒂姆·伯納斯·李爵士(Sir Tim Berners-Lee)在European Organization for Nuclear Research使用的協(xié)議。
此后HTTP協(xié)議一直在完善,最終于1999年推出了HTTP1.1版本,并成為全球使用的當(dāng)前標(biāo)準(zhǔn)。這些年來,網(wǎng)絡(luò)已經(jīng)發(fā)生了巨大變化,引入了圖像、復(fù)雜的樣式表、Javascript代碼、Flash和其它嵌入元素。最初的HTTP是針對簡單網(wǎng)頁的簡單協(xié)議,而不是設(shè)計來處理當(dāng)前的富媒體網(wǎng)站。
舉例來說,谷歌(微博)每秒鐘要處理4萬條網(wǎng)頁搜索。面對著為數(shù)十億的互聯(lián)網(wǎng)用戶服務(wù)的壓力,谷歌的技術(shù)人員在2009年啟動了名為SPDY(念作“speedy”,中文意思是快速。)項目,旨在完善HTTP協(xié)議。SPDY一開始只是供內(nèi)部使用,其它需要處理繁忙網(wǎng)絡(luò)流量的網(wǎng)站,比如Twitter、 Facebook、 Wordpress和CloudFlare,也使用了SPDY,結(jié)果是訪問速度得到提升。
這引起了互聯(lián)網(wǎng)工程任務(wù)組(IETF)的注意。IETF在2012年決定采用SPDY作為HTTP/2的基礎(chǔ)。雖然谷歌帶頭開發(fā)了這個協(xié)議,但后續(xù)工作由IETF的開放工作組完成。谷歌最近宣布放棄自家的SPDY,轉(zhuǎn)而支持即將到來的HTTP/2。
HTTP 1.1的缺點
今天的網(wǎng)頁會產(chǎn)生各種請求,圖像、CSS樣式表、視頻和其它嵌入對象、站外廣告等等,一個網(wǎng)頁可能會產(chǎn)生上百個請求。這給網(wǎng)頁服務(wù)器增加了不必要的負(fù)擔(dān),并造成了網(wǎng)頁加載速度緩慢,因為HTTP1.1只支持一個連接一個請求。
HTTP1.1對高延遲連接很敏感。這在使用手機網(wǎng)絡(luò)的移動設(shè)備上更是個大問題,甚至高速連接都會感覺很慢。HTTP管線化讓瀏覽器在等待回應(yīng)上一個請求時發(fā)送另一個請求。雖然這在一定程度上解決了高延遲問題,但管線化容易受到自身問題的影響,大多數(shù)瀏覽器都默認(rèn)禁用管線化。
HTTP/2的優(yōu)點
HTTP/2不使用明文,而是一個二進(jìn)制協(xié)議,它解析速度更快,傳輸更緊湊。HTTP 1.1用四種不同的方式來處理消息,HTTP/2減少到一種。
為了解決多個請求的問題,HTTP/2只允許對每個網(wǎng)站進(jìn)行一個連接,但使用流多路復(fù)用技術(shù)將多個請求整合到一個連接。這些流也是雙向的,網(wǎng)頁服務(wù)器和瀏覽器可以在單個連接內(nèi)同時傳輸數(shù)據(jù)。每個流都可以被優(yōu)先,因此瀏覽器能夠確定哪個圖像是最重要的,或者在你切換瀏覽器標(biāo)簽的時候,優(yōu)先一組新的數(shù)據(jù)流。
根據(jù)HTTP協(xié)議,每一個連接由一個與之前和之后的連接沒有聯(lián)系的請求響應(yīng)對組成。意思是每一個請求必須包含關(guān)于本連接的相關(guān)信息——這部分信息在HTTP請求頭中發(fā)送。隨著HTTP 1.1的發(fā)展,請求頭增加了新特性,變得更大。HTTP/2采用了請求頭壓縮技術(shù),減小了帶寬使用,加速了連接,同時也增強了安全性。
HTTP/2最后一項新增功能是服務(wù)器推送。在HTTP 1.1協(xié)議下,當(dāng)服務(wù)器收到網(wǎng)頁請求時,服務(wù)器會發(fā)回網(wǎng)頁,但必須等到網(wǎng)頁瀏覽器解析頁面的HTML并請求發(fā)回HTML代碼里的對象,比如圖片。服務(wù)器推送允許服務(wù)器在收到網(wǎng)頁請求時發(fā)回所有跟網(wǎng)頁相關(guān)的資源,不再需要等待。這樣將大大減少與網(wǎng)頁連接相關(guān)的延遲。
網(wǎng)頁版本2?
一旦網(wǎng)頁服務(wù)器和網(wǎng)頁瀏覽器開始采用HTTP/2協(xié)議——這最快可能是在幾個星期之后——網(wǎng)頁瀏覽體驗會感覺更快。開發(fā)人員不再需要解決HTTP 1.1的局限性,工作也將更輕松。
實際上,一些流行瀏覽器的最新版本(Firefox v36, Chrome v40 and Internet Explorer v11)已經(jīng)支持HTTP/2。對于Chrome和Firefox瀏覽器,HTTP/2只用于加密連接(SSL)——這和Let's ENcrypt(讓我們加密)運動一起推動加密技術(shù)的廣泛使用。
評論