如今互聯網發展日新月異,HTTP/1.1協議已經難以承載日益複雜的網頁內容,因此HTTP/2值得嘗試。
本書介紹了HTTP/2的設計初衷和新特性,對比了在不同網路環境下以及不同流覽器上HTTP/1.1與HTTP/2的性能表現差異,指出了網站遷移到HTTP/2需要注意的問題,並在附錄中給出了書中用到的所有資源的列表,方便讀者快速上手實踐。
本書適合網站開發及運維人員,以及正考慮要實現HTTP/2或者希望瞭解HTTP/2如何工作的讀者。
Stephen Ludin,Akamai公司Web性能部門CAO,帶領Akamai公司的Foundry團隊,負責研發下一代Web技術。
Javier Garza,Akamai公司高級企業架構師,專注於公司的主要客戶及戰略合作夥伴。他也是Web性能優化和HTTP/2的佈道者,為Akamai的產品開發團隊提供技術建議和客戶回饋。
中文版推薦序一:等待與希望 ..ix
中文版推薦序二 ..xiii
序 ..xv
前言 ..xvii
第 1章 HTTP進化史..1
1.1 HTTP/0.9和HTTP/1.0 ..2
1.2 HTTP/1.1 ..2
1.3 1.1版本之後 ..3
1.4 SPDY ..4
1.5 HTTP/2 ..4
第 2章 HTTP/2 快速入門 ..5
2.1 啟動並運行 ..5
2.2 獲取證書 ..6
2.2.1 使用線上證書生成器 ..6
2.2.2 自簽章憑證 ..6
2.2.3 Let’s Encrypt ..6
2.3 獲取並運行你的第一個HTTP/2伺服器 ..7
2.4 選擇流覽器 ..8
第3章 Web優化“黑魔法”的動機與方式 ..9
3.1 當前的性能挑戰 ..9
3.1.1 剖析Web 頁面請求..9
3.1.2 關鍵性能指標 ..11
3.1.3 HTTP/1 的問題 ..14
3.2 Web 性能優化技術 ..17
3.2.1 Web 性能的最佳實踐 .18
3.2.2 反模式 ..24
3.3 小結 ..25
第4 章 HTTP/2 遷移 ..27
4.1 流覽器的支援情況 ..27
4.2 遷移到TLS ..28
4.3 撤銷針對HTTP/1.1 的“優化”..30
4.4 協力廠商資源 ..31
4.5 支援舊版本用戶端 ...32
4.6 小結 ...32
第5 章 HTTP/2 協議...33
5.1 HTTP/2 分層 ..33
5.2 連接 ..34
5.3 幀 ..35
5.4 流 ..38
5.4.1 消息 ...39
5.4.2 流量控制 ...41
5.4.3 優先順序 ..42
5.5 服務端推送 ...43
5.5.1 推送對象 ..43
5.5.2 選擇要推送的資源 ..44
5.6 首部壓縮 ...45
5.7 線上傳輸 ...47
5.8 小結 ....52
第6 章 HTTP/2 性能 ..53
6.1 用戶端實現 ..53
6.2 延遲 ..54
6.3 丟包 ..57
6.4 服務端推送 ..59
6.5 首位元組時間...60
6.6 協力廠商資源 ..62
6.7 HTTP/2 反模式..66
6.7.1 功能變數名稱拆分 ..66
6.7.2 資源內聯 ..67
6.7.3 資源合併..67
6.7.4 禁用cookie 的功能變數名稱..67
6.7.5 生成精靈圖 ..67
6.7.6 資源預取 ..68
6.8 現實情況中的性能 ..68
6.8.1 性能測量方法論 ..68
6.8.2 案例1:www.facebook.com ..69
6.8.3 案例2:www.yahoo.com..71
6.9 小結....75
第7 章 HTTP/2 實現..75
7.1 桌面Web 流覽器 ..75
7.1.1 只支持TLS 版 ..75
7.1.2 禁用HTTP/2 ..76
7.1.3 支援HTTP/2 服務端推送 ..76
7.1.4 連接歸併 ..76
7.1.5 HTTP/2 調試工具..76
7.1.6 流覽器beta 版本 ..76
7.2 移動端 ..77
7.3 移動端應用支援 ..77
7.4 伺服器、代理以及緩存 ..77
7.5 內容分發網路 ..79
7.6 小結 ..79
第8 章 HTTP/2 調試 ..81
8.1 流覽器開發者工具..81
8.1.1 Chrome 開發者工具..81
8.1.2 Firefox 開發者工具 ..87
8.1.3 在iOS 上使用Charles Proxy 調試h2..88
8.1.4 在Android 上調試h2 ..90
8.2 WebPagetest ..91
8.3 OpenSSL ..91
8.4 nghttp2..92
8.5 curl ..93
8.6 h2i ...95
8.7 Wireshark ..96
8.8 小結 ..97
第9 章 展望未來 ..99
9.1 TCP 還是UDP..99
9.2 QUIC ..100
9.3 TLS 1.3 ..101
9.4 關於HTTP/3 ..102
附錄A HTTP/2 幀 ..103
附錄B 工具引用 ..111
關於作者..113
關於封面 ..113