Web性能权威指南
Ilya Grigorik
李松峰 译
出版时间:2014年03月
页数:317
“所有关注Web性能的人都应该看这本书,它是这个领域公认的权威参考指南。”
——Mark Nottingham
IETF下一代HTTP工作组(HTTPbis Working Group)主席

怎么才能让Web应用速度快、效率高?本书为所有关心这个问题的人提供了必须知道的网络知识,既包括影响性能的最基本因素,也包括那些能让我们创造更强大Web应用的重要技术革新,比如HTTP 2.0、XHR的改进、服务器发送事件(SSE)、WebSocket和WebRTC等。
本书作者是世界顶尖的Web性能工程师,他在书中深入浅出地讲解并演示了针对TCP、UDP和TLS协议的性能优化最佳实践,以及面向无线和移动网络进行优化时的特殊要求。随后,他全面剖析了浏览器技术的几项重大革新,包括使用这些新技术时在性能方面需要的独到考量。革命性的HTTP 2.0、XHR客户端网络脚本、基于SSE及WebSocket的实时数据流,以及通过WebRTC实现P2P通信,对这些面向未来的重大浏览器技术,本书都从性能优化的角度给出了详尽的解读和分析。

· 基于TCP、UDP和TLS交付最佳性能
· 通过3G、4G移动网络实现最佳性能
· 开发速度快同时又节能的移动应用
· 突破HTTP 1.x及其他浏览器协议的性能瓶颈
· 考虑将来通过HTTP 2.0交付最佳性能
· 在浏览器中实现高效的实时数据流通信
· 通过实时WebRTC创建高效的端到端视频会议及低延迟应用

Ilya Grigorik
谷歌“Web加速”(Make The Web Fast)团队的性能工程师、开发大使。他每天的主要工作就是琢磨怎么让Web应用速度更快,总结并推广能够提升应用性能的最佳实践。
  1. steve souders 推荐序
  2. 前言
  3. 第一部分 网络技术概览
  4. 第1章 延迟与带宽
  5. 1.1  速度是关键
  6. 1.2  延迟的构成
  7. 1.3  光速与传播延迟
  8. 1.4  延迟的最后一公里
  9. 1.5  网络核心的带宽
  10. 1.6  网络边缘的带宽
  11. 1.7  目标:高带宽和低延迟
  12. 第2章 tcp 的构成
  13. 2.1  三次握手
  14. 2.2  拥塞预防及控制
  15. 2.2.1  流量控制
  16. 2.2.2  慢启动
  17. 2.2.3  拥塞预防
  18. 2.3  带宽延迟积
  19. 2.4  队首阻塞
  20. 2.5  针对tcp 的优化建议
  21. 2.5.1  服务器配置调优
  22. 2.5.2  应用程序行为调优
  23. 2.5.3  性能检查清单
  24. 第3章 udp 的构成
  25. 3.1  无协议服务
  26. 3.2  udp 与网络地址转换器
  27. 3.2.1  连接状态超时
  28. 3.2.2  nat 穿透
  29. 3.2.3  stun、turn 与ice  
  30. 3.3  针对udp 的优化建议
  31. 第4章 传输层安全(tls)
  32. 4.1  加密、身份验证与完整性
  33. 4.2  tls 握手
  34. 4.2.1  应用层协议协商(alpn)
  35. 4.2.2  服务器名称指示(sni)
  36. 4.3  tls 会话恢复
  37. 4.3.1  会话标识符
  38. 4.3.2  会话记录单
  39. 4.4  信任链与证书颁发机构
  40. 4.5  证书撤销
  41. 4.5.1  证书撤销名单(crl)
  42. 4.5.2  在线证书状态协议(ocsp)
  43. 4.6  tls 记录协议
  44. 4.7  针对tls 的优化建议
  45. 4.7.1  计算成本
  46. 4.7.2  尽早完成(握手)
  47. 4.7.3  会话缓存与无状态恢复
  48. 4.7.4  tls 记录大小
  49. 4.7.5  tls 压缩
  50. 4.7.6  证书链的长度
  51. 4.7.7  ocsp 封套
  52. 4.7.8  http 严格传输安全(hsts)
  53. 4.8  性能检查清单
  54. 4.9  测试与验证
  55. 第二部分 无线网络性能
  56. 第5章 无线网络概览
  57. 5.1  无所不在的连接
  58. 5.2  无线网络的类型
  59. 5.3  无线网络的性能基础
  60. 5.3.1  带宽
  61. 5.3.2  信号强度
  62. 5.3.3  调制
  63. 5.4  测量现实中的无线性能
  64. 第6章 wi-fi  
  65. 6.1  从以太网到无线局域网
  66. 6.2  wi-fi 标准及功能
  67. 6.3  测量和优化wi-fi 性能
  68. 6.4  针对wi-fi 的优化建议
  69. 6.4.1  利用不计流量的带宽
  70. 6.4.2  适应可变带宽
  71. 6.4.3  适应可变的延迟时间
  72. 第7章 移动网络
  73. 7.1  g 字号移动网络简介
  74. 7.1.1  最早提供数据服务的2g  
  75. 7.1.2  3gpp 与3gpp2  
  76. 7.1.3  3g 技术的演进
  77. 7.1.4  imt-advanced 的4g 要求
  78. 7.1.5  长期演进(lte)
  79. 7.1.6  hspa+ 推进世界范围内的4g 普及
  80. 7.1.7  为多代并存的未来规划
  81. 7.2  设备特性及能力
  82. 7.3  无线电资源控制器(rrc)
  83. 7.3.1  3g、4g 和wi-fi 对电源的要求
  84. 7.3.2  lte rrc 状态机
  85. 7.3.3  hspa 与hspa+(umts)rrc 状态机
  86. 7.3.4  ev-do(cdma) rrc 状态机
  87. 7.3.5  低效率的周期性传输
  88. 7.4  端到端的运营商架构
  89. 7.4.1  无线接入网络(ran)
  90. 7.4.2  核心网络
  91. 7.4.3  回程容量与延迟
  92. 7.5  移动网络中的分组流
  93. 7.5.1  初始化请求
  94. 7.5.2  入站数据流
  95. 7.6  异质网络(hetnet)
  96. 7.7  真实的3g、4g 和wi-fi 性能
  97. 第8章 移动网络的优化建议
  98. 8.1  节约用电
  99. 8.2  消除周期性及无效的数据传输
  100. 8.3  预测网络延迟上限
  101. 8.3.1  考虑rrc 状态切换
  102. 8.3.2  解耦用户交互与网络通信
  103. 8.4  面对多网络接口并存的现实
  104. 8.5  爆发传输数据并转为空闲
  105. 8.6  把负载转移到wi-fi 网络
  106. 8.7  遵从协议和应用最佳实践
  107. 第三部分 http
  108. 第9章 http 简史
  109. 9.1  http 0.9:只有一行的协议
  110. 9.2  http 1.0:迅速发展及参考性rfc  
  111. 9.3  http 1.1:互联网标准
  112. 9.4  http 2.0:改进传输性能
  113. 第10章 web 性能要点
  114. 10.1  超文本、网页和web 应用
  115. 10.2  剖析现代web 应用
  116. 10.2.1  速度、性能与用户期望
  117. 10.2.2  分析资源瀑布
  118. 10.3  性能来源:计算、渲染和网络访问
  119. 10.3.1  更多带宽其实不(太)重要
  120. 10.3.2  延迟是性能瓶颈
  121. 10.4  人造和真实用户性能度量
  122. 10.5  针对浏览器的优化建议
  123. 第11章 http 1.x  
  124. 11.1  持久连接的优点
  125. 11.2  http 管道
  126. 11.3  使用多个tcp 连接
  127. 11.4  域名分区
  128. 11.5  度量和控制协议开销
  129. 11.6  连接与拼合
  130. 11.7  嵌入资源
  131. 第12章 http 2.0 
  132. 12.1  历史及其与spdy 的渊源
  133. 12.2  走向http 2.0 
  134. 12.3  设计和技术目标
  135. 12.3.1  二进制分帧层
  136. 12.3.2  流、消息和帧
  137. 12.3.3  多向请求与响应
  138. 12.3.4  请求优先级
  139. 12.3.5  每个来源一个连接
  140. 12.3.6  流量控制
  141. 12.3.7  服务器推送
  142. 12.3.8  首部压缩
  143. 12.3.9  有效的http 2.0 升级与发现
  144. 12.4  二进制分帧简介
  145. 12.4.1  发起新流
  146. 12.4.2  发送应用数据
  147. 12.4.3  http 2.0 帧数据流分析
  148. 第13章 优化应用的交付
  149. 13.1  经典的性能优化最佳实践
  150. 13.1.1  在客户端缓存资源
  151. 13.1.2  压缩传输的数据
  152. 13.1.3  消除不必要的请求字节
  153. 13.1.4  并行处理请求和响应
  154. 13.2  针对http 1.x 的优化建议
  155. 13.3  针对http 2.0 的优化建议
  156. 13.3.1  去掉对1.x 的优化
  157. 13.3.2  双协议应用策略
  158. 13.3.3  1.x 与2.0 的相互转换
  159. 13.3.4  评估服务器质量与性能
  160. 13.3.5  2.0 与tls  
  161. 13.3.6  负载均衡器、代理及应用服务器  
  162. 第四部分 浏览器api 与协议
  163. 第14章 浏览器网络概述
  164. 14.1  连接管理与优化
  165. 14.2  网络安全与沙箱
  166. 14.3  资源与客户端状态缓存
  167. 14.4  应用api 与协议
  168. 第15章 xmlhttprequest  
  169. 15.1  xhr 简史
  170. 15.2  跨源资源共享(cors)
  171. 15.3  通过xhr 下载数据
  172. 15.4  通过xhr 上传数据
  173. 15.5  监控下载和上传进度
  174. 15.6  通过xhr 实现流式数据传输
  175. 15.7  实时通知与交付
  176. 15.7.1  通过xhr 实现轮询
  177. 15.7.2  通过xhr 实现长轮询
  178. 15.8  xhr 使用场景及性能
  179. 第16章 服务器发送事件
  180. 16.1  eventsource api  
  181. 16.2  event stream 协议
  182. 16.3  sse 使用场景及性能
  183. 第17章 websocket  
  184. 17.1  websocket api  
  185. 17.1.1  ws 与wss  
  186. 17.1.2  接收文本和二进制数据
  187. 17.1.3  发送文本和二进制数据
  188. 17.1.4  子协议协商
  189. 17.2  websocket 协议
  190. 17.2.1  二进制分帧层
  191. 17.2.2  协议扩展
  192. 17.2.3  http 升级协商
  193. 17.3  websocket 使用场景及性能
  194. 17.3.1  请求和响应流
  195. 17.3.2  消息开销
  196. 17.3.3  数据效率及压缩
  197. 17.3.4  自定义应用协议
  198. 17.3.5  部署websocket 基础设施
  199. 17.4  性能检查表
  200. 第18章 webrtc  
  201. 18.1  标准和webrtc 的发展
  202. 18.2  音频和视频引擎
  203. 18.3  实时网络传输
  204. 18.4  建立端到端的连接
  205. 18.4.1  发信号和协商会话
  206. 18.4.2  会话描述协议(sdp)
  207. 18.4.3  交互连接建立(ice)  
  208. 18.4.4  增量提供(trickle ice)  
  209. 18.4.5  跟踪ice 收集和连接状态
  210. 18.4.6  完整的示例
  211. 18.5  交付媒体和应用数据
  212. 18.5.1  通过dtls 实现安全通信
  213. 18.5.2  通过srtp 和srtcp 交付媒体
  214. 18.5.3  通过sctp 交付应用数据
  215. 18.6  datachannel  
  216. 18.6.1  设置与协商
  217. 18.6.2  配置消息次序和可靠性
  218. 18.6.3  部分可靠交付与消息大小
  219. 18.7  webrtc 使用场景及性能
  220. 18.7.1  音频、视频和数据流
  221. 18.7.2  多方通信架构
  222. 18.7.3  基础设施及容量规划
  223. 18.7.4  数据效率及压缩
  224. 18.8  性能检查表
书名:Web性能权威指南
作者:Ilya Grigorik
译者:李松峰 译
国内出版社:人民邮电出版社
出版时间:2014年03月
页数:317
书号:978-7-115-34910-1
原版书书名:High Performance Browser Networking
原版书出版商:O'Reilly Media
Ilya Grigorik
 
是谷歌“Web加速”(Make The Web Fast)团队的性能工程师、开发大使。他每天的主要工作就是琢磨怎么让Web应用速度更快,总结并推广能够提升应用性能的最佳实践。
在专注于研究Web性能之前,Ilya创办了PostRank公司并担任CTO,这是一家社交分析公司。他的这家公司被谷歌收购后,成为了Google Analytics中社交分析报告模块的核心。除了研究Web性能和分析,Ilya还会为开源项目做做贡献、看看书,或者写一些好玩的项目,比如VimGolf、GitHub Archive等。