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