Web性能權威指南

[加]Ilya Grigorik 著

  • 出版商: 人民郵電
  • 出版日期: 2021-09-01
  • 定價: $414
  • 售價: 8.5$352
  • 語言: 簡體中文
  • 頁數: 318
  • 裝訂: 平裝
  • ISBN: 711534910X
  • ISBN-13: 9787115349101
  • 已絕版

  • Web性能權威指南-preview-1
Web性能權威指南-preview-1

商品描述

本書是谷歌公司高性能團隊核心成員,堪稱實戰經驗與規範解讀**結合的產物。目標是涵蓋Web***技術體系中應該掌握的所有網絡及性能優化知識。全書以性能優化為主線,從TCP、UDP和TLS協議講起,解釋瞭如何針對這幾種協議和基礎設施來優化應用。然後深入探討了無線和移動網絡的工作機制。揭示了HTTP協議的底層細節,同時詳細介紹了HTTP 2.0、 XHR、SSE、WebSocket、WebRTC和DataChannel等現代瀏覽器新增的具有革命性的新能力。

本書適合所有Web應用及站點開發人員閱讀,包括但不限於前端、後端、運維、大數據分析、UI/UX、存儲、視頻、實時消息,以及性能工程師。

作者簡介

Ilya Grigorik,是谷歌“Web加速”(Make The Web Fast)團隊的性能工程師、開發大使。他每天的主要工作就是琢磨怎麼讓Web應用速度更快,總結並推廣能夠提升應用性能的實踐。
在專注於研究Web性能之前,Ilya創辦了PostRank公司並擔任CTO,這是一家社交分析公司。他的這家公司被谷歌收購後,成為了Google Analytics中社交分析報告模塊的核心。除了研究Web性能和分析,Ilya還會為開源項目做做貢獻、看看書,或者寫一些好玩的項目,比如VimGolf、GitHub Archive等。

目錄大綱

Steve Souders推薦序 XIII
前言 XV

第1部分 網絡技術概覽
第1章 延遲與帶寬 3
1.1 速度是關鍵 3
1.2 延遲的構成 4
1.3 光速與傳播延遲 6
1.4 延遲的□後一公里 7
1.5 網絡核心的帶寬 8
1.6 網絡邊緣的帶寬 9
1.7 目標:高帶寬和低延遲 10

第2章 TCP的構成 13
2.1 三次握手 14
2.2 擁塞預防及控制 16
2.2.1 流量控制 16
2.2.2 慢啟動 18
2.2.3 擁塞預防 24
2.3 帶寬延遲積 25
2.4 隊首阻塞 27
2.5 針對TCP的優化建議 28
2.5.1 服務器配置調優 29
2.5.2 應用程序行為調優 30
2.5.3 性能檢查清單 30

第3章 UDP的構成 31
3.1 無協議服務 32
3.2 UDP與網絡地址轉換器 34
3.2.1 連接狀態超時 35
3.2.2 NAT穿透 36
3.2.3 STUN、TURN與ICE 37
3.3 針對UDP的優化建議 39

第4章 傳輸層安全(TLS) 41
4.1 加密、身份驗證與完整性 42
4.2 TLS握手 44
4.2.1 應用層協議協商(ALPN) 46
4.2.2 服務器名稱指示(SNI) 47
4.3 TLS會話恢復 48
4.3.1 會話標識符 48
4.3.2 會話記錄單 49
4.4 信任鏈與證書頒發機構 50
4.5 證書撤銷 52
4.5.1 證書撤銷名單(CRL) 53
4.5.2 在線證書狀態協議(OCSP) 54
4.6 TLS記錄協議 54
4.7 針對TLS的優化建議 55
4.7.1 計算成本 55
4.7.2 儘早完成(握手) 56
4.7.3 會話緩存與無狀態恢復 58
4.7.4 TLS記錄大小 59
4.7.5 TLS壓縮 60
4.7.6 證書鏈的長度 61
4.7.7 OCSP封套 62
4.7.8 HTTP嚴格傳輸安全(HSTS) 62
4.8 性能檢查清單 63
4.9 測試與驗證 64

第二部分 無線網絡性能
第5章 無線網絡概覽 69
5.1 無所不在的連接 69
5.2 無線網絡的類型 70
5.3 無線網絡的性能基礎 71
5.3.1 帶寬 71
5.3.2 信號強度 74
5.3.3 調製 75
5.4 測量現實中的無線性能 76

第6章 Wi-Fi 79
6.1 從以太網到無線局域網 79
6.2 Wi-Fi標準及功能 81
6.3 測量和優化Wi-Fi性能 81
6.4 針對Wi-Fi的優化建議 84
6.4.1 利用不計流量的帶寬 84
6.4.2 適應可變帶寬 85
6.4.3 適應可變的延遲時間 86

第7章 移動網絡 87
7.1 G字號移動網絡簡介 87
7.1.1 □早提供數據服務的2G 88
7.1.2 3GPP與3GPP2 89
7.1.3 3G技術的演進 91
7.1.4 IMT-Advanced的4G要求 93
7.1.5 長期演進(LTE) 94
7.1.6 HSPA+推進世界範圍內的4G普及 95
7.1.7 為多代並存的未來規劃 96
7.2 設備特性及能力 97
7.3 無線電資源控制器(RRC) 99
7.3.1 3G、4G和Wi-Fi對電源的要求 101
7.3.2 LTE RRC狀態機 102
7.3.3 HSPA與HSPA+(UMTS)RRC狀態機 104
7.3.4 EV-DO(CDMA) RRC狀態機 106
7.3.5 低效率的周期性傳輸 107
7.4 端到端的運營商架構 108
7.4.1 無線接入網絡(RAN) 108
7.4.2 核心網絡 110
7.4.3 回程容量與延遲 112
7.5 移動網絡中的分組流 113
7.5.1 初始化請求 113
7.5.2 入站數據流 116
7.6 異質網絡(HetNet) 117
7.7 真實的3G、4G和Wi-Fi性能 119

第8章 移動網絡的優化建議 121
8.1 節約用電 122
8.2 消除週期性及無效的數據傳輸 124
8.3 預測網絡延遲上限 126
8.3.1 考慮RRC狀態切換 127
8.3.2 解耦用戶交互與網絡通信 128
8.4 面對多網絡接口並存的現實 128
8.5 爆發傳輸數據並轉為空閒 130
8.6 把負載轉移到Wi-Fi網絡 131
8.7 遵從協議和應用□佳實踐 131

第三部分 HTTP
第9章 HTTP簡史 135
9.1 HTTP 0.9:只有一行的協議 135
9.2 HTTP 1.0:迅速發展及參考性RFC 136
9.3 HTTP 1.1:互聯網標準 138
9.4 HTTP 2.0:改進傳輸性能 141

第10章 Web性能要點 143
10.1 超文本、網頁和Web應用 144
10.2 剖析現代Web應用 146
10.2.1 速度、性能與用戶期望 147
10.2.2 分析資源瀑布 148
10.3 性能來源:計算、渲染和網絡訪問 151
10.3.1 更多帶寬其實不(太)重要 152
10.3.2 延遲是性能瓶頸 152
10.4 人造和真實用戶性能度量 154
10.5 針對瀏覽器的優化建議 157

第11章 HTTP 1. x 161
11.1 持久連接的優點 163
11.2 HTTP管道 165
11.3 使用多個TCP連接 169
11.4 域名分區 171
11.5 度量和控制協議開銷 173
11.6 連接與拼合 174
11.7 嵌入資源 177

第12章 HTTP 2.0 179
12.1 歷史及其與SPDY的淵源 180
12.2 走向HTTP 2.0 181
12.3 設計和技術目標 182
12.3.1 二進制分幀層 183
12.3.2 流、消息和幀 184
12.3.3 多向請求與響應 185
12.3.4 請求優先級 186
12.3.5 每個來源一個連接 188
12.3.6 流量控制 189
12.3.7 服務器推送 190
12.3.8 首部壓縮 192
12.3.9 有效的HTTP 2.0升級與發現 194
12.4 二進制分幀簡介 196
12.4.1 發起新流 197
12.4.2 發送應用數據 198
12.4.3 HTTP 2.0幀數據流分析 199

第13章 優化應用的交付 201
13.1 經典的性能優化□佳實踐 203
13.1.1 在客戶端緩存資源 204
13.1.2 壓縮傳輸的數據 205
13.1.3 消除不必要的請求字節 206
13.1.4 並行處理請求和響應 207
13.2 針對HTTP 1. x的優化建議 208
13.3 針對HTTP 2.0的優化建議 209
13.3.1 去掉對1. x的優化 209
13.3.2 雙協議應用策略 210
13.3.3 1. x與2.0的相互轉換 212
13.3.4 評估服務器質量與性能 213
13.3.5 2.0與TLS 214
13.3.6 負載均衡器、代理及應用服務器 215

第四部分 瀏覽器API與協議
第14章 瀏覽器網絡概述 219
14.1 連接管理與優化 220
14.2 網絡安全與沙箱 222
14.3 資源與客戶端狀態緩存 222
14.4 應用API與協議 223

第15章 XMLHttpRequest 225
15.1 XHR簡史 226
15.2 跨源資源共享(CORS) 227
15.3 通過XHR下載數據 230
15.4 通過XHR上傳數據 231
15.5 監控下載和上傳進度 233
15.6 通過XHR實現流式數據傳輸 234
15.7 實時通知與交付 236
15.7.1 通過XHR實現輪詢 237
15.7.2 通過XHR實現長輪詢 238
15.8 XHR使用場景及性能 240

第16章 服務器發送事件 243
16.1 EventSource API 243
16.2 Event Stream協議 245
16.3 SSE使用場景及性能 248

第17章 WebSocket 251
17.1 WebSocket API 252
17.1.1 WS與WSS 253
17.1.2 接收文本和二進制數據 253
17.1.3 發送文本和二進制數據 255
17.1.4 子協議協商 256
17.2 WebSocket協議 257
17.2.1 二進制分幀層 258
17.2.2 協議擴展 260
17.2.3 HTTP升級協商 261
17.3 WebSocket使用場景及性能 264
17.3.1 請求和響應流 264
17.3.2 消息開銷 265
17.3.3 數據效率及壓縮 266
17.3.4 自定義應用協議 266
17.3.5 部署WebSocket基礎設施 267
17.4 性能檢查表 269

第18章 WebRTC 271
18.1 標準和WebRTC的發展 272
18.2 音頻和視頻引擎 272
18.3 實時網絡傳輸 276
18.4 建立端到端的連接 280
18.4.1 發信號和協商會話 280
18.4.2 會話描述協議(SDP) 282
18.4.3 交互連接建立(ICE) 285
18.4.4 增量提供(Trickle ICE) 288
18.4.5 跟踪ICE收集和連接狀態 289
18.4.6 完整的示例 291
18.5 交付媒體和應用數據 295
18.5.1 通過DTLS實現安全通信 296
18.5.2 通過SRTP和SRTCP交付媒體 298
18.5.3 通過SCTP交付應用數據 301
18.6 DataChannel 305
18.6.1 設置與協商 307
18.6.2 配置消息次序和可靠性 309
18.6.3 部分可靠交付與消息大小 311
18.7 WebRTC使用場景及性能 312
18.7.1 音頻、視頻和數據流 312
18.7.2 多方通信架構 313
18.7.3 基礎設施及容量規劃 314
18.7.4 數據效率及壓縮 315
18.8 性能檢查表 316

關於封面 318