豆瓣阅读

    Web性能权威指南

    阅读
    ¥29.99
    • 导言
    • 目录
    • 作品信息

    本书是谷歌公司高性能团队核心成员的权威之作,堪称实战经验与规范解读完美结合的产物。本书目标是涵盖Web 开发者技术体系中应该掌握的所有网络及性能优化知识。全书以性能优化为主线,从TCP、UDP 和TLS 协议讲起,解释了如何针对这几种协议和基础设施来优化应用。然后深入探讨了无线和移动网络的工作机制。最后,揭示了HTTP 协议的底层细节,同时详细介绍了HTTP 2.0、 XHR、SSE、WebSocket、WebRTC 和DataChannel 等现代浏览器新增的具有革命性的新能力。

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

    Ilya Grigorik 是谷歌“Web加速”(Make The Web Fast)团队的性能工程师、开发大使。他每天的主要工作就是琢磨怎么让Web应用速度更快,总结并推广能够提升应用性能的最佳实践。

    作者简介:

    Ilya Grigorik

    是谷歌“Web加速”(Make The Web Fast)团队的性能工程师、开发大使。他每天的主要工作就是琢磨怎么让Web应用速度更快,总结并推广能够提升应用性能的最佳实践。

    在专注于研究Web性能之前,Ilya创办了PostRank公司并担任CTO,这是一家社交分析公司。他的这家公司被谷歌收购后,成为了Google Analytics中社交分析报告模块的核心。除了研究Web性能和分析,Ilya还会为开源项目做做贡献、看看书,或者写一些好玩的项目,比如VimGolf、GitHub Archive等。

    译者简介:

    李松峰

    2006年起投身翻译,出版过译著30余部,包括《JavaScript高级程序设计》、《简约至上》等畅销书。2008年进入出版业,从事技术图书编辑和审稿工作。

    2007年创立知识分享网站“为之漫笔”(cn-cuckoo.com),翻译了大量国外经典技术文章。2012年下半年创立“A List Apart中文版”站点(alistapart.cn),旨在向中文读者译介这一国际顶级Web设计与开发杂志。他经常参加技术社区活动,曾在W3ctech 2012 Mobile上分享“Dive into Responsive Web Design”。2013年1月应邀在金山网络分享“响应式Web设计”,2013年3月应邀在奇虎360分享“JS的国”。

    1. O'Reilly Media, Inc.介绍
    2. 业界评论
    3. Steve Souders推荐序
    4. 前言
    5. 关于本书
    6. 排版约定
    7. Safari® Books Online
    8. 联系我们
    9. 第一部分 网络技术概览
    10. 第1章 延迟与带宽
    11. 1.1 速度是关键
    12. 为减少跨大西洋的延迟而铺设Hibernia Express专线
    13. 1.2 延迟的构成
    14. 本地路由器的缓冲区爆满
    15. 1.3 光速与传播延迟
    16. 1.4 延迟的最后一公里
    17. 使用traceroute测量延迟
    18. 1.5 网络核心的带宽
    19. 1.6 网络边缘的带宽
    20. 1.7 目标:高带宽和低延迟
    21. 第2章 TCP的构成
    22. TCP和IP协议的历史
    23. 2.1 三次握手
    24. TCP快速打开
    25. 2.2 拥塞预防及控制
    26. 2.2.1 流量控制
    27. 窗口缩放(RFC 1323)
    28. 2.2.2 慢启动
    29. 慢启动重启
    30. 增大TCP的初始拥塞窗口
    31. 2.2.3 拥塞预防
    32. TCP比例降速
    33. 2.3 带宽延迟积
    34. 高速局域网中的带宽延迟积
    35. 2.4 队首阻塞
    36. 丢包就丢包
    37. 2.5 针对TCP的优化建议
    38. 2.5.1 服务器配置调优
    39. 2.5.2 应用程序行为调优
    40. 2.5.3 性能检查清单
    41. 第3章 UDP的构成
    42. 3.1 无协议服务
    43. 3.2 UDP与网络地址转换器
    44. 保留的私有网络地址范围
    45. 3.2.1 连接状态超时
    46. 3.2.2 NAT穿透
    47. 3.2.3 STUN、TURN与ICE
    48. 现实中的STUN和TURN
    49. 3.3 针对UDP的优化建议
    50. 第4章 传输层安全(TLS)
    51. 4.1 加密、身份验证与完整性
    52. Web代理、中间设备、TLS与新协议
    53. 4.2 TLS握手
    54. 公钥与对称密钥加密的性能
    55. 4.2.1 应用层协议协商(ALPN)
    56. NPN与ALPN的渊源
    57. 4.2.2 服务器名称指示(SNI)
    58. TLS、HTTP及专用IP
    59. 4.3 TLS会话恢复
    60. 4.3.1 会话标识符
    61. 4.3.2 会话记录单
    62. 4.4 信任链与证书颁发机构
    63. 4.5 证书撤销
    64. 4.5.1 证书撤销名单(CRL)
    65. 4.5.2 在线证书状态协议(OCSP)
    66. 4.6 TLS记录协议
    67. 4.7 针对TLS的优化建议
    68. 4.7.1 计算成本
    69. 4.7.2 尽早完成(握手)
    70. 不缓存的原始获取
    71. 4.7.3 会话缓存与无状态恢复
    72. 4.7.4 TLS记录大小
    73. 4.7.5 TLS压缩
    74. 4.7.6 证书链的长度
    75. 4.7.7 OCSP封套
    76. 4.7.8 HTTP严格传输安全(HSTS)
    77. 4.8 性能检查清单
    78. 4.9 测试与验证
    79. 第二部分 无线网络性能
    80. 第5章 无线网络概览
    81. 5.1 无所不在的连接
    82. 5.2 无线网络的类型
    83. 5.3 无线网络的性能基础
    84. 5.3.1 带宽
    85. 全球频谱分配及管制简史
    86. 5.3.2 信号强度
    87. 5.3.3 调制
    88. 5.4 测量现实中的无线性能
    89. 第6章 Wi-Fi
    90. 6.1 从以太网到无线局域网
    91. 6.2 Wi-Fi标准及功能
    92. 6.3 测量和优化Wi-Fi性能
    93. 测量Wi-Fi第一跳的延迟时间
    94. Wi-Fi中的丢包
    95. 6.4 针对Wi-Fi的优化建议
    96. 6.4.1 利用不计流量的带宽
    97. 6.4.2 适应可变带宽
    98. 自适应比特流
    99. 6.4.3 适应可变的延迟时间
    100. 第7章 移动网络
    101. 7.1 G字号移动网络简介
    102. 7.1.1 最早提供数据服务的2G
    103. 7.1.2 3GPP与3GPP2
    104. 7.1.3 3G技术的演进
    105. 1. 3GPP技术的演进(表7-4)
    106. 2. 3GPP2技术的演进(表7-5)
    107. 7.1.4 IMT-Advanced的4G要求
    108. 7.1.5 长期演进(LTE)
    109. 7.1.6 HSPA+推进世界范围内的4G普及
    110. 7.1.7 为多代并存的未来规划
    111. 用户面单向延迟
    112. 7.2 设备特性及能力
    113. 用户设备分类
    114. 移动设备的无线电规范解密
    115. 7.3 无线电资源控制器(RRC)
    116. 7.3.1 3G、4G和Wi-Fi对电源的要求
    117. 7.3.2 LTE RRC状态机
    118. 什么是“分配的无线电资源”
    119. 7.3.3 HSPA与HSPA+(UMTS)RRC状态机
    120. 7.3.4 EV-DO(CDMA) RRC状态机
    121. 7.3.5 低效率的周期性传输
    122. 46%的电量消耗仅传输0.2%的数据
    123. 7.4 端到端的运营商架构 
    124. 7.4.1 无线接入网络(RAN)
    125. 7.4.2 核心网络
    126. 物理层连接与应用层连接
    127. LTE核心网络简化和统一的架构
    128. 7.4.3 回程容量与延迟
    129. 7.5 移动网络中的分组流
    130. 7.5.1 初始化请求
    131. 移动网络中的延迟与抖动
    132. 7.5.2 入站数据流
    133. 7.6 异质网络(HetNet)
    134. 建模和管理无线网络容量
    135. 7.7 真实的3G、4G和Wi-Fi性能
    136. 第8章 移动网络的优化建议
    137. 8.1 节约用电
    138. 使用AT&T应用资源优化器测量能源消耗
    139. 8.2 消除周期性及无效的数据传输
    140. 内格尔及有效的服务器推送
    141. 计算后台更新的电量消耗
    142. 消除不必要的长连接
    143. 8.3 预测网络延迟上限
    144. 8.3.1 考虑RRC状态切换
    145. 8.3.2 解耦用户交互与网络通信
    146. 8.4 面对多网络接口并存的现实
    147. 移动网络中的流媒体应用
    148. 8.5 爆发传输数据并转为空闲
    149. 构建和评估预取模型
    150. 8.6 把负载转移到Wi-Fi网络
    151. 8.7 遵从协议和应用最佳实践
    152. 第三部分 HTTP
    153. 第9章 HTTP简史
    154. 9.1 HTTP 0.9:只有一行的协议
    155. 9.2 HTTP 1.0:迅速发展及参考性RFC
    156. 完美风暴:1990年代初期互联网的繁荣
    157. 9.3 HTTP 1.1:互联网标准
    158. 9.4 HTTP 2.0:改进传输性能
    159. 第10章 Web性能要点
    160. 10.1 超文本、网页和Web应用
    161. DOM、CSSOM和JavaScript
    162. 10.2 剖析现代Web应用
    163. 10.2.1 速度、性能与用户期望
    164. 把性能变成钞票
    165. 10.2.2 分析资源瀑布
    166. 10.3 性能来源:计算、渲染和网络访问
    167. 10.3.1 更多带宽其实不(太)重要
    168. 10.3.2 延迟是性能瓶颈
    169. 10.4 人造和真实用户性能度量
    170. 分析真实用户度量数据
    171. 10.5 针对浏览器的优化建议
    172. 谷歌搜索对TTFB(Time To First Byte)的优化
    173. 第11章 HTTP 1.x
    174. 让iTunes用户感受到3倍以上的性能增强
    175. 11.1 持久连接的优点
    176. 客户端和服务器上的连接重用
    177. 11.2 HTTP管道
    178. 在浏览器外部使用HTTP管道
    179. 11.3 使用多个TCP连接
    180. 消耗客户端和服务器资源
    181. 11.4 域名分区
    182. 11.5 度量和控制协议开销
    183. 11.6 连接与拼合
    184. 计算图片对内存的需求
    185. CSS和JavaScript文件大小与执行性能
    186. 优化Gmail性能
    187. 11.7 嵌入资源
    188. 第12章 HTTP 2.0
    189. 12.1 历史及其与SPDY的渊源
    190. 12.2 走向HTTP 2.0
    191. HTTP 2.0与SPDY共同进化
    192. 12.3 设计和技术目标
    193. 12.3.1 二进制分帧层
    194. 12.3.2 流、消息和帧
    195. 12.3.3 多向请求与响应
    196. 12.3.4 请求优先级
    197. 浏览器请求优先级与HTTP 2.0
    198. 12.3.5 每个来源一个连接
    199. 丢包、高RTT连接和HTTP 2.0性能
    200. 12.3.6 流量控制
    201. 12.3.7 服务器推送
    202. PUSH_PROMISE
    203. 实现HTTP 2.0服务器推送
    204. 12.3.8 首部压缩
    205. SPDY、CRIME和HTTP 2.0压缩
    206. 12.3.9 有效的HTTP 2.0升级与发现
    207. 部署HTTP 2.0的同时部署TLS和ALPN
    208. 12.4 二进制分帧简介
    209. 固定长度与可变长度字段
    210. 12.4.1 发起新流
    211. 12.4.2 发送应用数据
    212. 12.4.3 HTTP 2.0帧数据流分析
    213. 第13章 优化应用的交付
    214. 13.1 经典的性能优化最佳实践
    215. 13.1.1 在客户端缓存资源
    216. 理想与现实:智能手机上的Web资源缓存
    217. 13.1.2 压缩传输的数据
    218. WebP:Web上的新图片格式
    219. 13.1.3 消除不必要的请求字节
    220. 13.1.4 并行处理请求和响应
    221. 优化浏览器中的资源加载
    222. 13.2 针对HTTP 1.x的优化建议
    223. 13.3 针对HTTP 2.0的优化建议
    224. 致HTTP 2.0和SPDY早期采用者
    225. 13.3.1 去掉对1.x的优化
    226. HTTP 2.0中的打包与协议开销
    227. 13.3.2 双协议应用策略
    228. 使用PageSpeed实现动态优化
    229. 13.3.3 1.x与2.0的相互转换
    230. 13.3.4 评估服务器质量与性能
    231. 13.3.5 2.0与TLS
    232. 13.3.6 负载均衡器、代理及应用服务器
    233. 第四部分 浏览器API与协议
    234. 第14章 浏览器网络概述
    235. 14.1 连接管理与优化
    236. 谷歌Chrome的推测性网络优化
    237. 14.2 网络安全与沙箱
    238. 14.3 资源与客户端状态缓存
    239. 14.4 应用API与协议
    240. 第15章 XMLHttpRequest
    241. 15.1 XHR简史
    242. 15.2 跨源资源共享(CORS)
    243. 15.3 通过XHR下载数据
    244. 15.4 通过XHR上传数据
    245. 15.5 监控下载和上传进度
    246. 15.6 通过XHR实现流式数据传输
    247. 专有API和对XHR流的扩展
    248. 15.7 实时通知与交付
    249. 15.7.1 通过XHR实现轮询
    250. XHR轮询的性能建模
    251. 15.7.2 通过XHR实现长轮询
    252. Facebook的Chat使用了XHR长轮询
    253. 15.8 XHR使用场景及性能
    254. 第16章 服务器发送事件
    255. 16.1 EventSource API
    256. 使用自编JavaScript模拟EventSource
    257. 16.2 Event Stream协议
    258. SSE中的UTF-8编码与二进制传输
    259. 16.3 SSE使用场景及性能
    260. 通过TLS实现SSE流
    261. 第17章 WebSocket
    262. 17.1 WebSocket API
    263. 模拟WebSocket
    264. 17.1.1 WS与WSS
    265. 17.1.2 接收文本和二进制数据
    266. 使用JavaScript解码二进制数据
    267. 17.1.3 发送文本和二进制数据
    268. 17.1.4 子协议协商
    269. 17.2 WebSocket协议
    270. 17.2.1 二进制分帧层
    271. WebSocket的多路复用及队首阻塞
    272. 17.2.2 协议扩展
    273. WebSocket多路复用与压缩在现实中的应用
    274. 17.2.3 HTTP升级协商
    275. 代理、中间设备与WebSocket
    276. 17.3 WebSocket使用场景及性能
    277. 17.3.1 请求和响应流
    278. 传播与排队延迟
    279. 17.3.2 消息开销
    280. 17.3.3 数据效率及压缩
    281. 17.3.4 自定义应用协议
    282. 利用浏览器和中间设备的缓存
    283. 17.3.5 部署WebSocket基础设施
    284. 17.4 性能检查表
    285. 第18章 WebRTC
    286. 18.1 标准和WebRTC的发展
    287. 18.2 音频和视频引擎
    288. 通过getUserMedia获取音频和视频
    289. 音频(Opus)与视频(VP8)比特率
    290. 18.3 实时网络传输
    291. RTCPeerConnection API简介
    292. DataChannel
    293. 18.4 建立端到端的连接
    294. 18.4.1 发信号和协商会话
    295. 选择发信服务
    296. 18.4.2 会话描述协议(SDP)
    297. 18.4.3 交互连接建立(ICE)
    298. 18.4.4 增量提供(Trickle ICE)
    299. 18.4.5 跟踪ICE收集和连接状态
    300. 使用谷歌Chrome浏览器检测WebRTC连接状态
    301. 18.4.6 完整的示例
    302. 1.初始化WebRTC连接
    303. 2.响应WebRTC连接
    304. 通过SimpleWebRTC初始化WebRTC会话
    305. 18.5 交付媒体和应用数据
    306. 18.5.1 通过DTLS实现安全通信
    307. 身份与验证
    308. 18.5.2 通过SRTP和SRTCP交付媒体
    309. 适应WebRTC的SRTP和SRTCP
    310. 18.5.3 通过SCTP交付应用数据
    311. “裸SCTP”的挑战
    312. 18.6 DataChannel
    313. DataChannel与WebSocket API的对比(表18-2)
    314. 表18-2:WebSocket与DataChannel
    315. 18.6.1 设置与协商
    316. 外部信道协商
    317. 18.6.2 配置消息次序和可靠性
    318. 18.6.3 部分可靠交付与消息大小
    319. 18.7 WebRTC使用场景及性能
    320. 18.7.1 音频、视频和数据流
    321. 18.7.2 多方通信架构
    322. 端到端优化即服务
    323. 18.7.3 基础设施及容量规划
    324. 18.7.4 数据效率及压缩
    325. 18.8 性能检查表
    326. 关于封面

    作者〔加〕Ilya Grigorik

    译者李松峰

    类别 图书 / 非虚构

    提供方图灵社区

    喜欢这本书的人也喜欢

    来自豆瓣读书的评论6