编辑推荐
让网站和应用更快速、更简洁、更稳健,从而有效提升用户体验,这无疑是众多开发者梦寐以求的。然而互联网发展日新月异,HTTP/1.1协议已经难以满足现今的需求。在众多Web性能提升方案中,HTTP/2值得尝试。
本书是HTTP/2实用指南,介绍了HTTP/2的设计初衷和新特性,以及如何才能充分利用这些特性来打造高性能网站及应用。作者用定量分析方法,对比了不同网络环境下及不同浏览器上HTTP/1.1与HTTP/2的性能差异,并指出了网站迁移到HTTP/2需要注意的问题及对策。
本书主要内容:
HTTP发展回顾——面临性能挑战,促使协议升级
HTTP/2概览——优点及迁移方法
既有的建议方案,以及提升Web性能的技巧
HTTP/2支持的浏览器、服务器、代理,以及内容分发网络
相比于HTTP/1.1,采用HTTP/2的网站在性能上有何提升
HTTP/2对网络通信中一些具体问题的改进,如延迟、丢包、首字节时间等
内容简介
如今互联网发展日新月异,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
HTTP/2基础教程 电子书 下载 mobi epub pdf txt