Web性能权威指南内容介绍:
《web性能权威指南》是谷歌公司高性能团队核心成员,堪称实战经验与规范解读完美结合的产物。目标是涵盖Web开发者技术体系中应该掌握的所有网络及性能优化知识。全书以性能优化为主线,从TCP、UDP和TLS协议讲起,解释了如何针对这几种协议和基础设施来优化应用。然后深入探讨了无线和移动网络的工作机制。揭示了HTTP协议的底层细节,同时详细介绍了HTTP2.0、XHR、SSE、WebSocket、WebRTC和DataChannel等现代浏览器新增的具有革命性的新能力。这本书适合所有Web应用及站点开发人员阅读,包括但不限于前端、后端、运维、大数据分析、UI/UX、存储、视频、实时消息,以及性能工程师。
Web性能权威指南简介:
作者:〔加〕Ilya Grigorik译者:李松峰
类别:图书 / 非虚构
出版社:人民邮电出版社
出版日期:2014-08
ISBN:9787115349101
分享方:图灵社区
Web性能权威指南作者简介:
Ilya.Grigorik是谷歌“Web加速”(Make.The.Web.Fast)团队的性能工程师、开发大使。他每天的主要工作就是琢磨怎么让Web应用速度更快,总结并推广能够提升应用性能的最佳实践。在专注于研究Web性能之前,Ilya创办了PostRank公司并担任CTO,这是一家社交分析公司。他的这家公司被谷歌收购后,成为了Google.Analytics中社交分析报告模块的核心。除了研究Web性能和分析,Ilya还会为开源项目做做贡献、看看书,或者写一些好玩的项目,比如VimGolf、GitHub Archive等。
Web性能权威指南目录:
第一部分 网络技术概览第1章 延迟与带宽 3
1.1 速度是关键 3
1.2 延迟的构成 4
1.3 光速与传播延迟 6
1.4 延迟的最后一公里 7
1.5 网络核心的带宽 8
1.6 网络边缘的带宽 9
1.7 目标:高带宽和低延迟 10
第2章 TCP的构成 13
2.1 三次握手 14
2.2 拥塞预防及控制 16
2.2.1 流量控制 16
2.2.2 慢启动 18
2.2.3 拥塞预防 24
2.3 带宽延迟积 25
2.4 队首阻塞 27
2.5 针对TCP的优化建议 28
2.5.1 服务器配置调优 29
2.5.2 应用程序行为调优 30
2.5.3 性能检查清单 30
第3章 UDP的构成 31
3.1 无协议服务 32
3.2 UDP与网络地址转换器 34
3.2.1 连接状态超时 35
3.2.2 NAT穿透 36
3.2.3 STUN、TURN与ICE 37
3.3 针对UDP的优化建议 39
第4章 传输层安全(TLS) 41
4.1 加密、身份验证与完整性 42
4.2 TLS握手 44
4.2.1 应用层协议协商(ALPN) 46
4.2.2 服务器名称指示(SNI) 47
4.3 TLS会话恢复 48
4.3.1 会话标识符 48
4.3.2 会话记录单 49
4.4 信任链与证书颁发机构 50
4.5 证书撤销 52
4.5.1 证书撤销名单(CRL) 53
4.5.2 在线证书状态协议(OCSP) 54
4.6 TLS记录协议 54
4.7 针对TLS的优化建议 55
4.7.1 计算成本 55
4.7.2 尽早完成(握手) 56
4.7.3 会话缓存与无状态恢复 58
4.7.4 TLS记录大小 59
4.7.5 TLS压缩 60
4.7.6 证书链的长度 61
4.7.7 OCSP封套 62
4.7.8 HTTP严格传输安全(HSTS) 62
4.8 性能检查清单 63
4.9 测试与验证 64
第二部分 无线网络性能
第5章 无线网络概览 69
5.1 无所不在的连接 69
5.2 无线网络的类型 70
5.3 无线网络的性能基础 71
5.3.1 带宽 71
5.3.2 信号强度 74
5.3.3 调制 75
5.4 测量现实中的无线性能 76
第6章 Wi-Fi 79
6.1 从以太网到无线局域网 79
6.2 Wi-Fi标准及功能 81
6.3 测量和优化Wi-Fi性能 81
6.4 针对Wi-Fi的优化建议 84
6.4.1 利用不计流量的带宽 84
6.4.2 适应可变带宽 85
6.4.3 适应可变的延迟时间 86
第7章 移动网络 87
7.1 G字号移动网络简介 87
7.1.1 最早分享数据服务的2G 88
7.1.2 3GPP与3GPP2 89
7.1.3 3G技术的演进 91
7.1.4 IMT-Advanced的4G要求 93
7.1.5 长期演进(LTE) 94
7.1.6 HSPA+推进世界范围内的4G普及 95
7.1.7 为多代并存的未来规划 96
7.2 设备特性及能力 97
7.3 无线电资源控制器(RRC) 99
7.3.1 3G、4G和Wi-Fi对电源的要求 101
7.3.2 LTE RRC状态机 102
7.3.3 HSPA与HSPA+(UMTS)RRC状态机 104
7.3.4 EV-DO(CDMA) RRC状态机 106
7.3.5 低效率的周期性传输 107
7.4 端到端的运营商架构 108
7.4.1 无线接入网络(RAN) 108
7.4.2 核心网络 110
7.4.3 回程容量与延迟 112
7.5 移动网络中的分组流 113
7.5.1 初始化请求 113
7.5.2 入站数据流 116
7.6 异质网络(HetNet) 117
7.7 真实的3G、4G和Wi-Fi性能 119
第8章 移动网络的优化建议 121
8.1 节约用电 122
8.2 消除周期性及无效的数据传输 124
8.3 预测网络延迟上限 126
8.3.1 考虑RRC状态切换 127
8.3.2 解耦用户交互与网络通信 128
8.4 面对多网络接口并存的现实 128
8.5 爆发传输数据并转为空闲 130
8.6 把负载转移到Wi-Fi网络 131
8.7 遵从协议和应用最佳实践 131
第三部分 HTTP
第9章 HTTP简史 135
9.1 HTTP 0.9:只有一行的协议 135
9.2 HTTP 1.0:迅速发展及参考性RFC 136
9.3 HTTP 1.1:互联网标准 138
9.4 HTTP 2.0:改进传输性能 141
第10章 Web性能要点 143
10.1 超文本、网页和Web应用 144
10.2 剖析现代Web应用 146
10.2.1 速度、性能与用户期望 147
10.2.2 分析资源瀑布 148
10.3 性能来源:计算、渲染和网络访问 151
10.3.1 更多带宽其实不(太)重要 152
10.3.2 延迟是性能瓶颈 152
10.4 人造和真实用户性能度量 154
10.5 针对浏览器的优化建议 157
第11章 HTTP 1.x 161
11.1 持久连接的优点 163
11.2 HTTP管道 165
11.3 使用多个TCP连接 169
11.4 域名分区 171
11.5 度量和控制协议开销 173
11.6 连接与拼合 174
11.7 嵌入资源 177
第12章 HTTP 2.0 179
12.1 历史及其与SPDY的渊源 180
12.2 走向HTTP 2.0 181
12.3 设计和技术目标 182
12.3.1 二进制分帧层 183
12.3.2 流、消息和帧 184
12.3.3 多向请求与响应 18512.3.4 请求优先级 186
12.3.5 每个来源一个连接 188
12.3.6 流量控制 189
12.3.7 服务器推送 190
12.3.8 首部压缩 192
12.3.9 有效的HTTP 2.0升级与发现 194
12.4 二进制分帧简介 196
12.4.1 发起新流 197
12.4.2 发送应用数据 198
12.4.3 HTTP 2.0帧数据流分析 199
第13章 优化应用的交付 201
13.1 经典的性能优化最佳实践 203
13.1.1 在客户端缓存资源 204
13.1.2 压缩传输的数据 205
13.1.3 消除不必要的请求字节 206
13.1.4 并行处理请求和响应 207
13.2 针对HTTP 1.x的优化建议 208
13.3 针对HTTP 2.0的优化建议 209
13.3.1 去掉对1.x的优化 209
13.3.2 双协议应用策略 210
13.3.3 1.x与2.0的相互转换 212
13.3.4 评估服务器质量与性能 213
13.3.5 2.0与TLS 214
13.3.6 负载均衡器、代理及应用服务器 215
第四部分 浏览器API与协议
第14章 浏览器网络概述 219
14.1 连接管理与优化 220
14.2 网络安全与沙箱 222
14.3 资源与客户端状态缓存 222
14.4 应用API与协议 223
第15章 XMLHttpRequest 225
15.1 XHR简史 226
15.2 跨源资源共享(CORS) 227
15.3 通过XHR下载数据 230
15.4 通过XHR上传数据 231
15.5 监控下载和上传进度 233
15.6 通过XHR实现流式数据传输 234
15.7 实时通知与交付 236
15.7.1 通过XHR实现轮询 237
15.7.2 通过XHR实现长轮询 238
15.8 XHR使用场景及性能 240
第16章 服务器发送事件 243
16.1 EventSource API 243
16.2 Event Stream协议 245
16.3 SSE使用场景及性能 248
第17章 WebSocket 251
17.1 WebSocket API 252
17.1.1 WS与WSS 253
17.1.2 接收文本和二进制数据 253
17.1.3 发送文本和二进制数据 255
17.1.4 子协议协商 256
17.2 WebSocket协议 257
17.2.1 二进制分帧层 258
17.2.2 协议扩展 260
17.2.3 HTTP升级协商 261
17.3 WebSocket使用场景及性能 264
17.3.1 请求和响应流 264
17.3.2 消息开销 265
17.3.3 数据效率及压缩 266
17.3.4 自定义应用协议 266
17.3.5 部署WebSocket基础设施 267
17.4 性能检查表 269
第18章 WebRTC 271
18.1 标准和WebRTC的发展 272
18.2 音频和视频引擎 272
18.3 实时网络传输 276
18.4 建立端到端的连接 280
18.4.1 发信号和协商会话 280
18.4.2 会话描述协议(SDP) 282
18.4.3 交互连接建立(ICE) 285
18.4.4 增量分享(Trickle ICE) 288
18.4.5 跟踪ICE收集和连接状态 289
18.4.6 完整的示例 291
18.5 交付媒体和应用数据 295
18.5.1 通过DTLS实现安全通信 296
18.5.2 通过SRTP和SRTCP交付媒体 298
18.5.3 通过SCTP交付应用数据 301
18.6 DataChannel 305
18.6.1 设置与协商 307
18.6.2 配置消息次序和可靠性 309
18.6.3 部分可靠交付与消息大小 311
18.7 WebRTC使用场景及性能 312
18.7.1 音频、视频和数据流 312
18.7.2 多方通信架构 313
18.7.3 基础设施及容量规划 314
18.7.4 数据效率及压缩 315
18.8 性能检查表 316
Web性能权威指南前言:
对所有程序员而言,Web浏览器是今天部署最为广泛的应用平台。每一部智能手机,每一台平板、笔记本和桌面电脑,以及介于这些之间的其他设备,都安装了Web浏览器。据预测,到2020年,能上网的设备将突破200亿部,其中每一部都会安装浏览器,而且最低限度都会支持Wi-Fi或蜂窝连接。至于运行的是什么平台,设备是谁制造的,操作系统是哪个版本,都无所谓,反正每部设备都会带一个浏览器。就是这个浏览器,它的功能正变得越来越强大。回首从前,那时的浏览器与现在知识兔使用的浏览器完全不能同日而语。浏览器革命还是最近几年的事:HTML和CSS构成表现层,JavaScript则成为Web上的新“汇编”语言,而新的HTML5.API仍在不断改进,致力于为交付吸引人的高性能应用分享新功能。可以说,有史以来还没有哪项技术或平台,在部署或装机率方面能和今天的浏览器相提并论。所以,这里有无限的机会,创新也无处不在。
而且,浏览器中网络基础设施的快速发展与创新,同样是天下无敌。过去,知识兔能实现的交互仅限于简单的HTTP请求和响应;如今,高效的流式传输、双向实时通信,以及交付自定义协议,甚至端到端视频会议和两端之间直接交换数据,都已经成为现实。而且,所有这些只不过是几十行JavaScript代码的事儿。
然后呢?几十亿设备互联,已有和新在线服务吸引的用户越来越多,只有高性能Web应用才谈得上竞争力。速度是关键!事实上,对某些应用来说,速度决定命运。要开发出高性能的Web应用,必须透彻理解浏览器及其网络交互机制,而这正是本书的主题。
Web性能权威指南关于本书:
这本书目标是涵盖开发者应该掌握的所有网络知识:网络开发中要用到哪些协议,这些协议有什么固有的局限性,如何针对底层网络优化自己的应用,浏览器分享了哪些网络相关的功能,以及什么时候需要用到它们。知识兔将从TCP、UDP和TLS协议的内部工作原理讲起,向大家解释如何针对这几种协议和基础设施来优化知识兔的应用。然后深入地探讨无线和移动网络的工作机制,以无线电为媒介的通信可大不一样。对此,知识兔将围绕如何设计和架构应用,讨论它们各自的痛点所在。最后,知识兔再揭示HTTP协议的底层细节,同时详细介绍浏览器新增的一些令人激动的能力:
即将到来的HTTP 2.0的诸多改进;
XHR的新特性和新功能;
通过SSE发送数据流;
通过WebSocket实现双向通信;
通过WebRTC实现端到端的音频和视频通信;
通过DataChannel实现端到端的数据交换。
要设计和开发高性能的应用,必须理解每一位数据是如何交付的,必须理解每一种传输机制和相关协议的特点。毕竟,等待网络是知识兔应用最大的性能瓶颈,再怎么优化渲染JavaScript或其他方面,也抵不上网络优化!本书的目标就是告诉读者怎么消除等待时间,利用现有网络实现最大的性能优化。
本书全面介绍了Web性能优化的知识和技术,适合对构建和交付高性能应用感兴趣的所有读者。简单地说,如果你不满足于那些枯燥的检查表,而更希望知晓浏览器乃至底层协议的真实工作过程,就应该读一读这本书。本书既会对配置和架构给出实用建议,也会探讨为达成优化目标而必须考虑的因素和权衡的要点,既讲“怎么办”,也讲“为什么”。
免责声明:
Web性能权威指南来源于网络,仅用于分享知识,学习和交流!请下载完在24小时内删除。Web性能权威指南禁用于商业用途!如果您喜欢《Web性能权威指南》,请购买正版,谢谢合作。
爱学习,请到知识兔 / 查找资源自行下载!
下载体验