日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

HTTP/2 資料匯總

 hh3755 2016-02-19

HTTP/2 資料匯總

隨著今年 5 月 14 日 HTTP/2 協(xié)議正式版的發(fā)布,越來(lái)越多的網(wǎng)站開(kāi)始部署 HTTP/2 了。我對(duì) HTTP 協(xié)議一直都比較有興趣,本文匯總一些關(guān)于 HTTP/2 的資料以及我寫(xiě)過(guò)的文章,會(huì)持續(xù)更新。如果大家有任何問(wèn)題,歡迎留言交流探討。

協(xié)議

HTTP/2 協(xié)議由以下兩個(gè) RFC 組成:

網(wǎng)上有一份由百度 FEX 翻譯的「h2-13 中文版」,更新于一年前,也可以看看。h2-13 說(shuō)明這是協(xié)議的第 13 版草案,HTTP/2 一共經(jīng)歷了 00~17 共 18 版草案才正式發(fā)布。

很多支持 HTTP/2 的 Web 服務(wù)器和客戶(hù)端,都會(huì)標(biāo)注出自己支持的具體版本,例如 h2、h2-14,分別表示自己支持正式版、第 14 版草案。有時(shí)候還會(huì)看到某個(gè)軟件寫(xiě)著支持 h2c,這是指它支持運(yùn)行于非加密通道之上的 HTTP/2(HTTP/2 Cleartext)。

HTTP/2 協(xié)議是從 SPDY 演變而來(lái),SPDY 已經(jīng)完成了使命并很快就會(huì)退出歷史舞臺(tái)(例如 Chrome 將在「2016 年初結(jié)束對(duì) SPDY 的支持」;Nginx 在今年年底正式支持 HTTP/2 后,也不再支持 SPDY),故本文不再討論 SPDY。

在「HTTP/2 官網(wǎng)」可以找到更多有關(guān) HTTP/2 協(xié)議的資料。

部署

根據(jù) caniuse 的統(tǒng)計(jì),目前支持 HTTP/2 的瀏覽器有 Chrome 41+、Firefox 36+、Safari 9+、Windows 10 上的 IE 11 和 Edge。服務(wù)器方面則有 F5、H2O、nghttp2 等數(shù)十種選擇,各種語(yǔ)言實(shí)現(xiàn)的都有。Nginx 則相對(duì)謹(jǐn)慎一些,在「本月初才提供對(duì) HTTP/2 的實(shí)驗(yàn)性支持」,年底才會(huì)正式支持。這里有一份「HTTP/2 服務(wù)器及客戶(hù)端」的完整清單。

Akamai 這個(gè)頁(yè)面」提供了 HTTP/1 和 HTTP/2 的對(duì)比,大家可以用自己的瀏覽器測(cè)試一下。

HTTP/2 協(xié)議本身并沒(méi)有要求必須基于 TLS 部署,但是 Chrome 和 Firefox 這兩大瀏覽器均表示只支持 HTTP/2 Over TLS。這樣做一方面更安全,另一方面利用 TLS 的加密機(jī)制可以更好地穿透網(wǎng)絡(luò)中間節(jié)點(diǎn)。

所以如果要部署 HTTP/2,首先需要將網(wǎng)站升級(jí)為 HTTPS。這個(gè)過(guò)程涉及到購(gòu)買(mǎi)證書(shū)、生成證書(shū)和配置 Web 服務(wù)器等幾個(gè)步驟,網(wǎng)上很多教程,這里略過(guò)。有兩點(diǎn)需要注意:1)選擇層級(jí)少的證書(shū)(點(diǎn)擊 Chrome 地址欄的綠色小鎖,查看證書(shū)信息就可以看到層級(jí));2)一定不要使用 SHA1 算法的證書(shū)。

本博客先后使用過(guò) H2O 和 Nginx 這兩個(gè)服務(wù)器提供 HTTP/2 服務(wù),下面是具體的介紹:

如果你在使用 Apache,可以參考這篇文章啟用 HTTP/2。

另外,現(xiàn)在國(guó)外一些 CDN 也開(kāi)始支持 HTTP/2 了,例如 KeyCDN,可以根據(jù)自己實(shí)際需要選用。KeyCDN 寫(xiě)過(guò)一篇描述自家和全球 HTTP/2 部署情況統(tǒng)計(jì)的文章:HTTP/2 Statistics: KeyCDN Report on HTTP/2 Distribution。

HTTP/2 協(xié)議中對(duì) TLS 有了更嚴(yán)格的限制:例如 HTTP/2 中只能使用 TLSv1.2+,還禁用了幾百種 CipherSuite。如果你遇到了啟用 HTTP/2 導(dǎo)致網(wǎng)站打不開(kāi)的問(wèn)題,請(qǐng)參考這篇文章。

優(yōu)化

將網(wǎng)站升級(jí)為 HTTPS 之后,多了 TLS 握手過(guò)程,之后的全部流量都會(huì)加密,如果沒(méi)有做好優(yōu)化肯定會(huì)比之前更慢。實(shí)際上,現(xiàn)在 TLS 已經(jīng)很快了,這里有一個(gè)性能專(zhuān)家 igrigorik 建立的網(wǎng)站:Is TLS Fast Yet?,可以關(guān)注下。

下面幾篇對(duì) Nginx 的配置心得,是我在本博客實(shí)踐之后寫(xiě)的,可以先看看:

HTTP/2 究竟會(huì)給 WPO(Web Performance Optimization)帶來(lái)什么,我也寫(xiě)了一系列文章來(lái)介紹:

在 Velocity 2015 · SC 會(huì)議上,來(lái)自 Google 的 Ilya Grigorik 分享了「HTTP/2 is here, let's optimize! - Yesterday's perf best-practices are today's HTTP/2 anti-patterns」話題,重點(diǎn)講述 HTTP/2 與 HTTP/1 關(guān)于 WPO 的相同和不同之處,值得推薦。

HTTP/2 中的 Server Push,可以減少網(wǎng)絡(luò)延遲對(duì)性能帶來(lái)的影響,優(yōu)化首次訪問(wèn)速度。但它可能造成流量浪費(fèi),具體細(xì)節(jié)請(qǐng)看我的這兩篇文章:

HTTP/2 中的頭部壓縮,可以減少頭部體積,提高傳輸效率。有關(guān)這項(xiàng)技術(shù)原理和實(shí)現(xiàn)的詳細(xì)介紹,請(qǐng)看我的這篇文章:

目前我沒(méi)有找到只針對(duì) HTTP/2 的性能測(cè)試工具,下面在線工具的結(jié)果可以作為參考:

  • Qualys SSL Server Test,用于測(cè)試 SSL 服務(wù)端;
  • WebPagetest,老牌網(wǎng)站性能測(cè)試工具;
  • GTmetrix,使用 PageSpeed、YSlow 和其他工具全面測(cè)試網(wǎng)站性能;

下面這個(gè)工具可以給出一個(gè)網(wǎng)站分別在 HTTP/1 和 HTTP/2 下的加載速度對(duì)比(當(dāng)然,待測(cè)試網(wǎng)站必須同時(shí)支持 HTTP/1 和 HTTP/2):

調(diào)試

不同于 HTTP/1 的文本格式報(bào)文,HTTP/2 傳輸?shù)亩际嵌M(jìn)制幀,調(diào)試起來(lái)要麻煩一些。

首先,要辨別某個(gè)網(wǎng)站是否啟用了 HTTP/2,可以通過(guò)瀏覽器開(kāi)發(fā)工具的「網(wǎng)絡(luò)」面板中的 Protocol 字段查看。也可以通過(guò)擴(kuò)展在瀏覽器地址欄顯示當(dāng)前的協(xié)議類(lèi)型,HTTP/2 指示器擴(kuò)展:Chrome 版、Firefox 版。

在 Chrome 地址欄輸入chrome://net-internals/#http2,打開(kāi) Chrome 自帶的 HTTP/2 查看工具,可以很方便地查看 HTTP/2 幀信息。

新版 Wireshark(dev 1.99)也可以調(diào)試 HTTP/2,詳細(xì)介紹請(qǐng)查看「官網(wǎng) Wiki」和我的這篇文章:調(diào)試 HTTP/2 流量。

更多調(diào)試工具可以在 CloudFlare 這篇文章里找到:Tools for debugging, testing and using HTTP/2

書(shū)籍

以下書(shū)籍都有可供免費(fèi)閱讀的電子版:

最近發(fā)現(xiàn)一個(gè) HTTP/2 日文網(wǎng)站:,有大量非常有用的資料,可惜看不懂日語(yǔ),不知道有人愿意牽頭做 HTTP/2 的中文本地化工作不?

最后放上我最近做的一個(gè)關(guān)于 HTTP/2 的分享:《HTTP/2:新的機(jī)遇與挑戰(zhàn)》。

本文鏈接:參與評(píng)論。

--EOF--

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多