Web性能权威指南.pdf

Web性能权威指南.pdf
 

书籍描述

内容简介
  《Web性能权威指南》是谷歌公司高性能团队核心成员的权威之作,堪称实战经验与规范解读完美结合的产物。《Web性能权威指南》目标是涵盖Web开发者技术体系中应该掌握的所有网络及性能优化知识。全书以性能优化为主线,从TCP、UDP和TLS协议讲起,解释了如何针对这几种协议和基础设施来优化应用。然后深入探讨了无线和移动网络的工作机制。最后,揭示了HTTP协议的底层细节,同时详细介绍了HTTP 2.0、 XHR、SSE、WebSocket、WebRTC和DataChannel等现代浏览器新增的具有革命性的新能力。
  《Web性能权威指南》适合所有Web应用及站点开发人员阅读,包括但不限于前端、后端、运维、大数据分析、UI/UX、存储、视频、实时消息,以及性能工程师。

编辑推荐
《Web性能权威指南》适合所有Web应用及站点开发人员阅读,包括但不限于前端、后端、运维、大数据分析、UI/UX、存储、视频、实时消息,以及性能工程师。

作者简介
作者:(加拿大)格里高利克(Grigorik Ilya) 译者:李松峰

目录
Steve Souders推荐序
前言
第一部分 网络技术概览
第1章 延迟与带宽
1.1 速度是关键
1.2 延迟的构成
1.3 光速与传播延迟
1.4 延迟的最后一公里
1.5 网络核心的带宽
1.6 网络边缘的带宽
1.7 目标:高带宽和低延迟
第2章 TCP的构成
2.1 三次握手
2.2 拥塞预防及控制
2.2.1 流量控制
2.2.2 慢启动
2.2.3 拥塞预防
2.3 带宽延迟积
2.4 队首阻塞
2.5 针对TCP的优化建议
2.5.1 服务器配置调优
2.5.2 应用程序行为调优
2.5.3 性能检查清单
第3章 UDP的构成
3.1 无协议服务
3.2 UDP与网络地址转换器
3.2.1 连接状态超时
3.2.2 NAT穿透
3.2.3 STUN、TURN与ICE
3.3 针对UDP的优化建议
第4章 传输层安全(TLS)
4.1 加密、身份验证与完整性
4.2 TLS握手
4.2.1 应用层协议协商(ALPN)
4.2.2 服务器名称指示(SNI)
4.3 TLS会话恢复
4.3.1 会话标识符
4.3.2 会话记录单
4.4 信任链与证书颁发机构
4.5 证书撤销
4.5.1 证书撤销名单(CRL)
4.5.2 在线证书状态协议(OCSP)
4.6 TLS记录协议
4.7 针对TLS的优化建议
4.7.1 计算成本
4.7.2 尽早完成(握手)
4.7.3 会话缓存与无状态恢复
4.7.4 TLS记录大小
4.7.5 TLS压缩
4.7.6 证书链的长度
4.7.7 OCSP封套
4.7.8 HTTP严格传输安全(HSTS)
4.8 性能检查清单
4.9 测试与验证
第二部分 无线网络性能
第5章 无线网络概览
5.1 无所不在的连接
5.2 无线网络的类型
5.3 无线网络的性能基础
5.3.1 带宽
5.3.2 信号强度
5.3.3 调制
5.4 测量现实中的无线性能
第6章 Wi—Fi
6.1 从以太网到无线局域网
6.2 Wi—Fi标准及功能
6.3 测量和优化Wi—Fi性能
6.4 针对Wi—Fi的优化建议
6.4.1 利用不计流量的带宽
6.4.2 适应可变带宽
6.4.3 适应可变的延迟时间
第7章 移动网络
7.1 G字号移动网络简介
7.1.1 最早提供数据服务的G
7.1.23GPP与3GPP2
7.1.33G技术的演进
7.1.4 IMT—Advanced的4G要求
7.1.5 长期演进(LTE)
7.1.6 HSPA+推进世界范围内的G普及
7.1.7 为多代并存的未来规划
7.2 设备特性及能力
7.3 无线电资源控制器(RRC)
7.3.13G、4G和Wi—Fi对电源的要求
7.3.2 LTE RRC状态机
7.3.3 HSPA与HSPA+(UMTS)RRC状态机
7.3.4 EV—DO(CDMA) RRC状态机
7.3.5 低效率的周期性传输
7.4 端到端的运营商架构
7.4.1 无线接入网络(RAN)
7.4.2 核心网络
7.4.3 回程容量与延迟
7.5 移动网络中的分组流
7.5.1 初始化请求
7.5.2 入站数据流
7.6 异质网络(HetNet)
7.7 真实的3G、4G和Wi—Fi性能
第8章 移动网络的优化建议
8.1 节约用电
8.2 消除周期性及无效的数据传输
8.3 预测网络延迟上限
8.3.1 考虑RRC状态切换
8.3.2 解耦用户交互与网络通信
8.4 面对多网络接口并存的现实
8.5 爆发传输数据并转为空闲
8.6 把负载转移到Wi—Fi网络
8.7 遵从协议和应用最佳实践
第三部分 HTTP
第9章 HTTP简史
9.1 HTTP 0.9:只有一行的协议
9.2 HTTP 1.0:迅速发展及参考性RFC
9.3 HTTP 1.1:互联网标准
9.4 HTTP 2.0:改进传输性能
第10章 Web性能要点
10.1 超文本、网页和Web应用
10.2 剖析现代Web应用
10.2.1 速度、性能与用户期望
10.2.2 分析资源瀑布
10.3 性能来源:计算、渲染和网络访问
10.3.1 更多带宽其实不(太)重要
10.3.2 延迟是性能瓶颈
10.4 人造和真实用户性能度量
10.5 针对浏览器的优化建议
第11章 HTTP 1.x
11.1 持久连接的优点
11.2 HTTP管道
11.3 使用多个TCP连接
11.4 域名分区
11.5 度量和控制协议开销
11.6 连接与拼合
11.7 嵌入资源
第12章 HTTP 2.0
12.1 历史及其与SPDY的渊源
12.2 走向HTTP 2.0
12.3 设计和技术目标
12.3.1 二进制分帧层
12.3.2 流、消息和帧
12.3.3 多向请求与响应
12.3.4 请求优先级
12.3.5 每个来源一个连接
12.3.6 流量控制
12.3.7 服务器推送
12.3.8 首部压缩
12.3.9 有效的HTTP 2.0升级与发现
12.4 二进制分帧简介
12.4.1 发起新流
12.4.2 发送应用数据
12.4.3 HTTP 2.0帧数据流分析
第13章 优化应用的交付
13.1 经典的性能优化最佳实践
13.1.1 在客户端缓存资源
13.1.2 压缩传输的数据
13.1.3 消除不必要的请求字节
13.1.4 并行处理请求和响应
13.2 针对HTTP 1.x的优化建议
13.3 针对HTTP 2.0的优化建议
13.3.1 去掉对1.x的优化
13.3.2 双协议应用策略
13.3.31.x与2.0的相互转换
13.3.4 评估服务器质量与性能
13.3.52.0与TLS
13.3.6 负载均衡器、代理及应用服务器
第四部分 浏览器API与协议
第14章 浏览器网络概述
14.1 连接管理与优化
14.2 网络安全与沙箱
14.3 资源与客户端状态缓存
14.4 应用API与协议
第15章 XMLHttpRequest
15.1 XHR简史
15.2 跨源资源共享(CORS)
15.3 通过XHR下载数据
15.4 通过XHR上传数据
15.5 监控下载和上传进度
15.6 通过XHR实现流式数据传输
15.7 实时通知与交付
15.7.1 通过XHR实现轮询
15.7.2 通过XHR实现长轮询
15.8 XHR使用场景及性能
第16章 服务器发送事件
16.1 EventSource API
16.2 Event Stream协议
16.3 SSE使用场景及性能
第17章 WebSocket
17.1 WebSocket API
17.1.1 WS与WSS
17.1.2 接收文本和二进制数据
17.1.3 发送文本和二进制数据
17.1.4 子协议协商
17.2 WebSocket协议
17.2.1 二进制分帧层
17.2.2 协议扩展
17.2.3 HTTP升级协商
17.3 WebSocket使用场景及性能
17.3.1 请求和响应流
17.3.2 消息开销
17.3.3 数据效率及压缩
17.3.4 自定义应用协议
17.3.5 部署WebSocket基础设施
17.4 性能检查表
第18章 WebRTC
18.1 标准和WebRTC的发展
18.2 音频和视频引擎
18.3 实时网络传输
18.4 建立端到端的连接
18.4.1 发信号和协商会话
18.4.2 会话描述协议(SDP)
18.4.3 交互连接建立(ICE)
18.4.4 增量提供(Trickle ICE)
18.4.5 跟踪ICE收集和连接状态
18.4.6 完整的示例
18.5 交付媒体和应用数据
18.5.1 通过DTLS实现安全通信
18.5.2 通过SRTP和SRTCP交付媒体
18.5.3 通过SCTP交付应用数据
18.6 DataChannel
18.6.1 设置与协商
18.6.2 配置消息次序和可靠性
18.6.3 部分可靠交付与消息大小
18.7 WebRTC使用场景及性能
18.7.1 音频、视频和数据流
18.7.2 多方通信架构
18.7.3 基础设施及容量规划
18.7.4 数据效率及压缩
18.8 性能检查表
关于封面

文摘
版权页:



传播延迟
消息从发送端到接收端需要的时间,是信号传播距离和速度的函数
传输延迟
把消息中的所有比特转移到链路中需要的时间,是消息长度和链路速率的函数
处理延迟
处理分组首部、检查位错误及确定分组目标所需的时间
排队延迟
到来的分组排队等待处理的时间
以上延迟的时间总和,就是客户端到服务器的总延迟时间。传播时间取决于距离和信号通过的媒介,另外传播速度通常不超过光速。而传输延迟由传输链路的速率决定,与客户端到服务器的距离无关。举个例子,假设有一个10 MB的文件,分别通过两个链路传输,一个1 Mbit/s,另一个100 Mbit/s。在1 Mbit/s的链路上,需要花10 s,而在100 Mbit/s的链路上,只需0.1 s。
接着,分组到达路由器。路由器必须检测分组的首部,以确定出站路由,并且还可能对数据进行检查,这些都要花时间。由于这些检查通常由硬件完成,因此相应的延迟一般非常短,但再短也还是存在。最后,如果分组到达的速度超过了路由器的处理能力,那么分组就要在入站缓冲区排队。数据在缓冲区排队等待的时间,当然就是排队延迟。
每个分组在通过网络时都会遇到这样或那样的延迟。发送端与接收端的距离越远,传播时间就越长。一路上经过的路由器越多,每个分组的处理和传输延迟就越多。最后,网络流量越拥挤,分组在入站缓冲区中被延迟的可能性就越大。

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多