HTTP(Hypertext Transfer Protocol)是网站和浏览器之间交换消息的标准。在20年之后,它终于迎来了剧增的升级需求。通过添加对流、服务器推送、压缩和请求优先级策略的支持,HTTP/2在速度、安全性和效率上获得了巨大的提升。本书会教你高效使用HTTP/2需要的所有知识,例如,如何使用帧、多路复用及推送等新特性来优化Web性能。同时,你还会了解到一些关于流量控制和流依赖等高级话题的实际案例。我们可以使用这些易于上手的技术和*实践,来提升网站的性能。本书面向Web发者以及网站管理员,内容包括:
售 价:¥
纸质售价:¥84.00购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
扉页
内容简介
前言
致谢
关于本书
关于作者
关于封面
第1部分 向HTTP/2靠拢
第1章 万维网与HTTP
1.1 万维网的原理
1.1.1 因特网与万维网
1.1.2 打开网页时会发生什么
1.2 什么是HTTP
1.3 HTTP的语法和历史
1.3.1 HTTP/0.9
1.3.2 HTTP/1.0
1.3.3 HTTP/1.1
1.4 HTTPS简介
1.5 查看、发送和接收HTTP消息的工具
1.5.1 浏览器开发者工具
1.5.2 发送HTTP请求
1.5.3 其他工具
总结
第2章 通向HTTP/2之路
2.1 HTTP/1.1和当前的万维网
2.1.1 HTTP/1.1根本的性能问题
2.1.2 HTTP/1.1管道化
2.1.3 网络性能瀑布流图
2.2 解决HTTP/1.1性能问题的方案
2.2.1 使用多个HTTP连接
2.2.2 发送更少的请求
2.2.3 HTTP/1性能优化总结
2.3 HTTP/1.1的其他问题
2.4 实际案例
2.4.1 示例网站1: amazon.com
2.4.2 示例网站2:imgur.com
2.4.3 这个问题究竟有多严重
2.5 从HTTP/1.1到HTTP/2
2.5.1 SPDY
2.5.2 HTTP/2
2.6 HTTP/2对Web性能的影响
2.6.1 展示HTTP/2能力的绝佳示例
2.6.2 对HTTP/2提升性能的期望
2.6.3 HTTP/1.1的一些性能变通方法可能是反模式
总结
第3章 升级到HTTP/2
3.1 HTTP/2的支持
3.1.1 浏览器对HTTP/2的支持
3.1.2 服务器对HTTP/2的支持
3.1.3 兼容不支持HTTP/2的情况
3.2 网站开启HTTP/2的方法
3.2.1 在Web服务器上开启HTTP/2
3.2.2 反向代理实现HTTP/2
3.2.3 通过CDN实现HTTP/2
3.2.4 小结
3.3 常见问题
总结
第2部分 使用HTTP/2
第4章 HTTP/2协议基础
4.1 为什么是HTTP/2而不是HTTP/1.2
4.1.1 使用二进制格式替换文本格式
4.1.2 多路复用代替同步请求
4.1.3 流的优先级和流量控制
4.1.4 首部压缩
4.1.5 服务端推送
4.2 如何创建一个HTTP/2连接
4.2.1 使用HTTPS协商
4.2.2 使用HTTP Upgrade首部
4.2.3 使用先验知识
4.2.4 HTTP Alternative Services
4.2.5 HTTP/2前奏消息
4.3 HTTP/2帧
4.3.1 查看HTTP/2帧
4.3.2 HTTP/2帧数据格式
4.3.3 HTTP/2消息流示例
4.3.4 其他帧
总结
第5章 实现HTTP/2推送
5.1 什么是HTTP/2服务端推送
5.2 如何推送
5.2.1 使用HTTP link首部推送
5.2.2 查看HTTP/2推送
5.2.3 使用link首部从下游系统推送
5.2.4 更早推送
5.2.5 使用其他方式推送
5.3 HTTP/2推送在浏览器中如何运作
5.3.1 查看推送缓存如何工作
5.3.2 使用RST_STREAM拒绝推送
5.4 如何实现条件推送
5.4.1 在服务端跟踪推送的资源
5.4.2 使用HTTP条件请求
5.4.3 使用基于cookie的推送
5.4.4 使用缓存摘要
5.5 推送什么
5.5.1 你能推送什么
5.5.2 应该推送什么
5.5.3 自动化推送
5.6 HTTP/2推送常见问题
5.7 HTTP/2推送对性能的影响
5.8 对比推送和预加载
5.9 HTTP/2推送的其他应用场景
总结
第6章 HTTP/2优化
6.1 HTTP/2对Web开发者的影响
6.2 一些HTTP/1.1优化方法是否成了反模式
6.2.1 HTTP/2请求依然有开销
6.2.2 HTTP/2不是没有限制
6.2.3 越大的资源压缩越有效
6.2.4 带宽限制和资源竞争
6.2.5 域名分片
6.2.6 内联资源
6.2.7 总结
6.3 在HTTP/2下依然有效的性能优化技术
6.3.1 减少要传输的数据量
6.3.2 使用缓存防止重复发送数据
6.3.3 Service Worker可以大幅减少网络加载
6.3.4 不发送不需要的内容
6.3.5 HTTP资源暗示
6.3.6 减少最后1公里的延迟
6.3.7 优化HTTPS
6.3.8 和HTTP无关的性能优化技术
6.4 同时对HTTP/1.1和HTTP/2做优化
6.4.1 计算HTTP/2流量
6.4.2 在服务端检测HTTP/2支持
6.4.3 在客户端检测HTTP/2支持
6.4.4 连接合并
6.4.5 还要为HTTP/1.1的用户优化多久
总结
第3部分 HTTP/2进阶
第7章 高级HTTP/2概念
7.1 流状态
7.2 流量控制
7.2.1 流量控制示例
7.2.2 在服务器上设置流量控制
7.3 流优先级
7.3.1 流依赖关系
7.3.2 流权重
7.3.3 为什么优先级策略如此复杂
7.3.4 Web服务器和浏览器中的优先级策略
7.4 HTTP/2一致性测试
7.4.1 服务端一致性测试
7.4.2 客户端一致性测试
总结
第8章 HPACK首部压缩
8.1 为什么需要首部压缩
8.2 压缩的运作方式
8.2.1 查表法
8.2.2 更高效的编码技术
8.2.3 Lookback(反查)压缩
8.3 HTTP正文压缩
8.4 HTTP/2的HPACK首部压缩
8.4.1 HPACK静态表
8.4.2 HPACK动态表
8.4.3 HPACK首部类型
8.4.4 Huffman编码表
8.4.5 Huffman编码脚本
8.4.6 为什么Huffman编码不总是最佳的
8.5 HPACK压缩实例
8.6 客户端和服务端对HPACK的实现
8.7 HPACK的价值
总结
第4部分 HTTP的未来
第9章 TCP、QUIC和HTTP/3
9.1 TCP的低效率因素,以及HTTP
9.1.1 创建HTTP连接的延迟
9.1.2 TCP拥塞控制对性能的影响
9.1.3 TCP低效率因素对HTTP/2的影响
9.1.4 优化TCP
9.1.5 TCP和HTTP的未来
9.2 QUIC
9.2.1 QUIC的性能优势
9.2.2 QUIC和网络技术栈
9.2.3 什么是UDP,为什么QUIC基于它
9.2.4 标准化QUIC
9.2.5 HTTP/2和QUIC的不同
9.2.6 QUIC的工具
9.2.7 QUIC实现
9.2.8 你应该使用QUIC吗
总结
第10章 HTTP将何去何从
10.1 关于HTTP/2的争议,以及它没有解决的问题
10.1.1 反对SPDY的观点
10.1.2 隐私问题和HTTP中的状态
10.1.3 HTTP和加密
10.1.4 传输协议的问题
10.1.5 HTTP/2过于复杂
10.1.6 HTTP/2是一种权宜之计
10.2 HTTP/2的实际应用
10.3 HTTP/2的未来版本,HTTP/3或者HTTP/4会带来什么
10.3.1 QUIC是HTTP/3吗
10.3.2 进一步改进HTTP二进制协议
10.3.3 在传输层之上进一步优化HTTP
10.3.4 什么时候会需要新的HTTP版本
10.3.5 如何引入未来版本的HTTP
10.4 将HTTP当作一个更通用的传输协议
10.4.1 使用HTTP语义和消息来传递非Web流量
10.4.2 使用HTTP/2二进制成帧层
10.4.3 使用HTTP启动另一个协议
总结
附录A 将常见Web服务器升级到HTTP/2
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜