HTTP2 基础教程 PDF 文档
如今互联网发展日新月异,HTTP/1.1 协议已经难以承载日益复杂的网页内容,因此 HTTP/2值得尝试。本书介绍了 HTTP/2 的设计初衷和新特性,对比了在不同网络环境下以及不同浏览器上 HTTP/1.1 与 HTTP/2 的性能表现差异,指出了网站迁移到 HTTP/2 需要注意的问题,并在附录中给出了书中用到的所有资源的列表,方便读者快速上手实践。
本书适合网站开发及运维人员,以及正考虑要实现 HTTP/2 或者希望了解 HTTP/2 如何工作的读者。
HTTP/2 已经渗入普通人的生活。如果你平时多个心眼,会发现很多网站已经悄然采用了HTTP/2,享受了 HTTP/2 带来的诸般好处,甚至在一些技术大会上已经有相关的主题分享。
另一方面,大家对它的了解还相当粗浅。从我主持面试的经历来看,在我认为“应当了解HTTP/2”的候选人——不管后端还是前端——当中,大部分人还处在“听说过有这么回事”的阶段,只有不到 20% 的候选人能够说出一点实质性的内容。如果继续问“HTTP/2和 HTTPS 是什么关系”“从 HTTP/1.1 升级到 HTTP/2 有什么要注意的”“HTTP/2 为什么不叫 HTTP/2.0”,能答上来的人就寥寥无几了。
为什么会出现这种情况?我觉得和 HTTP/2 的中文资料匮乏有关。
纵观近年来的中文技术图书市场,无论是涉及的领域,还是作品的质量,都有明显的进步,众星捧月追求英文原版的情况已经是过去时。这对广大技术从业者来说,无疑是好事。但是另一方面,这种情况也间接造成了中英文技术资料的割裂:没有中文图书,大家最多看看网上的文章,没有那么多人愿意去研读英文图书了。关于 HTTP/2,到目前为止,还没有看到过任何中文图书。
前言
第 1 章 HTTP 进化史
1.1 HTTP/0.9 和 HTTP/1.0
1.2 HTTP/1.1
1.3 1.1 版本之后
1.4 SPDY
1.5 HTTP/2
第 2 章 HTTP/2 快速入门
2.1 启动并运行
2.2 获取证书
2.2.1 使用在线证书生成器
2.2.2 自签名证书
2.2.3 Let’s Encrypt
2.3 获取并运行你的第一个 HTTP/2 服务器
2.4 选择浏览器
第 3 章 Web 优化“黑魔法”的动机与方式
3.1 当前的性能挑战
3.1.1 剖析 Web 页面请求
3.1.2 关键性能指标
3.1.3 HTTP/1 的问题
3.2 Web 性能优化技术
3.2.1 Web 性能的最佳实践
3.2.2 反模式
3.3 小结
第 4 章 HTTP/2 迁移
4.1 浏览器的支持情况
4.2 迁移到 TLS
4.3 撤销针对 HTTP/1.1 的“优化”
4.4 第三方资源
4.5 支持旧版本客户端
4.6 小结
第 5 章 HTTP/2 协议
5.1 HTTP/2 分层
5.2 连接
5.3 帧
5.4 流
5.4.1 消息
5.4.2 流量控制
5.4.3 优先级
5.5 服务端推送
5.5.1 推送对象
5.5.2 选择要推送的资源
5.6 首部压缩
5.7 线上传输
一个简单的 GET 请求
5.8 小结
第 6 章 HTTP/2 性能
6.1 客户端实现
6.2 延迟
6.3 丢包
6.4 服务端推送
6.5 首字节时间
6.6 第三方资源
6.7 HTTP/2 反模式
6.7.1 域名拆分
6.7.2 资源内联
6.7.3 资源合并
6.7.4 禁用 cookie 的域名
6.7.5 生成精灵图
6.7.6 资源预取
6.8 现实情况中的性能
6.8.1 性能测量方法论
6.8.2 案例 1: www.facebook.com
6.8.3 案例 2: www.yahoo.com
6.9 小结
第 7 章 HTTP/2 实现
7.1 桌面 Web 浏览器
7.1.1 只支持 TLS 版
7.1.2 禁用 HTTP/2
7.1.3 支持 HTTP/2 服务端推送
7.1.4 连接归并
7.1.5 HTTP/2 调试工具
7.1.6 浏览器 beta 版本
7.2 移动端
7.3 移动端应用支持
7.4 服务器、代理以及缓存
7.5 内容分发网络
7.6 小结
第 8 章 HTTP/2 调试
8.1 浏览器开发者工具
8.1.1 Chrome 开发者工具
8.1.2 Firefox 开发者工具
8.1.3 在 iOS 上使用 Charles Proxy 调试 h2 因为
8.1.4 在 Android 上调试 h2
8.2 WebPagetest
8.3 OpenSSL
OpenSSL 命令
8.4 nghttp2
使用 nghttp
8.5 curl
使用 curl
8.6 h2i
8.7 Wireshark
8.8 小结
第 9 章 展望未来
9.1 TCP 还是 UDP
9.2 QUIC
9.3 TLS 1.3
9.4 关于 HTTP/3
9.5 小结
附录 AHTTP/2 帧
A.1 帧首部
A.2 DATA 帧
A.2.1 DATA 帧字段
A.2.2 DATA 帧标识位
A.3 HEADERS 帧
A.3.1 HEADERS 帧字段
A.3.2 HEADERS 帧标识位
A.4 PRIORITY 帧
PRIORITY 帧字段
A.5 RST_STREAM 帧
A.6 SETTINGS 帧
SETTINGS 帧参数列表
A.7 PUSH_PROMISE 帧
A.7.1 PUSH_PROMISE 帧字段
A.7.2 PUSH_PROMISE 帧标识
A.8 PING 帧
A.9 GOAWAY 帧
GOAWAY 帧字段
A.10 WINDOW_UPDATE 帧
WINDOW_UPDATE 帧字段
A.11 CONTINUATION 帧
A.11.1 CONTINUATION 帧字段
A.11.2 CONTINUATION 帧标识位
附录 B 工具引用
B.1 工具
B.2 浏览器
B.3 服务器、代理和缓存
下载地址:HTTP2 基础教程
Go 语言编程 PDF 文档
延伸阅读:
暂无内容!
评论列表 (0条):
加载更多评论 Loading...