Web性能权威指南

2018.7.1 星期日 11:55

# 第一部分 网络技术概览

第 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 证书链的长度
4.7.7 OCSP 封套
4.7.8 HTTP 严格传输安全(HSTS)
4.8 性能检查清单
4.9 测试与验证

# 第二部分 无线网络性能

第 5 章 无线网络概览

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 章 WebSocket251

17.1 WebSocket API252
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

2018.7.1 星期日 12:05

knowledge is no pay,reward is kindness
0%