第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章 HTT P/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小结 73
第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章 HTT P/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 13 101
9.4关于HTTP/3 102
9.5小结 102
附录A HTTP/2帧 103
附录B工具引用 111
关于作者 113
关于封面 113