第1部分 绪论 1
第1章 简介 1
1.1 Web的起源及发展 1
1.1.1 Web的历史演变 2
1.1.2 Web的现状 3
1.2 Web的语义组件 5
1.2.1 统一资源标识符(URI) 5
1.2.2 超文本标记语言(HTML) 5
1.2.3 超文本传输协议(HTTP) 5
1.3.1 Web上的内容 6
1.3 术语和概念 6
1.3.2 软件组件 7
1.3.3 基本网络 8
1.3.4 标准化 9
1.3.5 Web流量和性能 10
1.3.6 Web应用程序 10
1.4 没有涉及的主题 11
1.5 纵览全书 12
第2部分 Web软件组件 14
第2章 Web客户机 14
2.1 作为程序的客户机 15
2.2 浏览器的演变 15
2.3 与Web有关的浏览器功能 17
2.3.1 标准的Web传输实例 18
2.3.2 从浏览器发出一个请求 19
2.3.3 浏览器高速缓存 20
2.3.4 请求消息标头 21
2.3.5 响应处理 21
2.4 浏览器配置 22
2.4.1 物理外观 23
2.4.2 语义选择 24
2.4.3 为非协议功能配置浏览器 25
2.5 浏览器的安全问题 26
2.6.1 使用Cookie的动机 28
2.6 Cookie(Web上的甜饼) 28
2.6.2 Cookie在浏览器中的使用 29
2.6.3 通过Cookie进行用户控制 30
2.6.4 Cookie的隐私问题 30
2.7 网络蜘蛛(Spider) 31
2.7.1 在Web上搜索 32
2.7.2 Spider客户机 32
2.7.3 Spider在搜索引擎中的使用 35
2.8 智能代理与专用浏览器 37
2.8.1 智能代理 38
2.8.2 专用浏览器 39
2.9 小结 40
第3章 Web代理 41
3.1 中间媒体的历史与演变 42
3.2 代理的高级分类 44
3.2.1 高速缓存代理 44
3.2.2 透明代理 44
3.3 代理应用 44
3.3.1 共享Web访问 45
3.3.2 高速缓存响应 45
3.3.3 匿名客户机 45
3.3.4 转换请求和响应 46
3.3.5 非HTTP系统的网关 46
3.3.6 过滤请求和响应 47
3.4 HTTP相关的代理角色 48
3.4.1 与代理进行请求-响应交换时的步骤 48
3.4.2 处理HTTP请求和响应 49
3.4.3 作为Web服务器的代理 51
3.4.4 作为Web客户机的代理 52
3.4.5 使用代理的例子 53
3.5 代理链接和分级结构 53
3.6 代理配置 54
3.7 代理隐私权问题 55
3.8.1 逆向代理或代理人 56
3.8.2 截取代理 56
3.8 其他种类的代理 56
3.9 小结 57
第4章 Web服务器 58
4.1 Web站点和Web服务器 58
4.1.1 Web站点 58
4.1.2 Web服务器 59
4.2 处理客户机请求 60
4.2.1 处理客户机请求的步骤 60
4.2.2 访问控制 61
4.2.3 动态生成响应 62
4.2.4 创建和使用Cookie 66
4.3.1 请求间共享HTTP响应 68
4.3 在请求间共享信息 68
4.3.2 请求间共享元数据 69
4.4 服务器体系结构 69
4.4.1 事件驱动服务器体系结构 70
4.4.2 进程驱动服务器体系结构 71
4.4.3 混合服务器体系结构 71
4.5 服务器托管 72
4.5.1 单一机器存放多个Web站点 72
4.5.2 单一Web站点分布在多机上 74
4.6 Apache Web服务器的实例研究 75
4.6.1 资源管理 75
4.6.2 HTTP请求处理 77
4.7 小结 81
第3部分 Web协议 82
第5章 HTTP底层协议 82
5.1 网际协议 83
5.1.1 Internet体系结构的演变 83
5.1.2 IP设计目标 84
5.1.3 IP地址 87
5.1.4 IP标头细节 89
5.2 传输控制协议 92
5.2.1 套接字抽象 92
5.2.2 有序可靠字节流 93
5.2.3 打开和关闭TCP连接 94
5.2.4 滑动窗口流控制 96
5.2.5 重传丢失包 97
5.2.6 TCP拥塞控制 98
5.2.7 TCP标头细节 99
5.3 域名系统 101
5.3.1 DNS解析器 101
5.3.2 DNS体系结构 102
5.3.3 DNS协议 105
5.3.4 DNS查询和Web 106
5.3.5 基于DNS的Web服务器负载均衡 107
5.4 应用层协议 108
5.4.2 文件传输协议(FTP) 109
5.4.1 Telnet协议 109
5.4.3 简单邮件传输协议(SMTP) 111
5.4.4 网络新闻传输协议(NNTP) 113
5.4.5 应用层协议的属性 114
5.5 小结 115
第6章 HTTP协议设计与描述 116
6.1 HTTP概述 117
6.1.1 协议属性 118
6.1.2 协议的影响 122
6.2 HTTP语言元素 124
6.2.1 HTTP术语 125
6.2.2 HTTP/1.0请求方法 128
6.2.3 HTTP/1.0标头 132
6.2.4 HTTP/1.0响应类别 139
6.3 HTTP的可扩展性 142
6.4 SSL和安全性 143
6.4.1 SSL 143
6.4.2 HTTPS:在Web交换机中使用SSL 144
6.4.3 HTTP/1.0中的安全性 145
6.5 协议兼容性与互操作性 146
6.5.1 版本号与互操作性 147
6.5.2 MUST、SHOULD、MAY需求级别 147
6.6 小结 148
7.1 HTTP/1.1协议的演变 149
第7章 HTTP/1.1 149
7.1.1 演变的历史 150
7.1.2 使用HTTP/1.0的问题 151
7.1.3 HTTP/1.1中的新概念 152
7.2 在1.0和1.1中的方法、标头和响应码 155
7.2.1 新旧请求方法 155
7.2.2 新旧标头 156
7.2.3 新旧响应码 159
7.3 高速缓存 163
7.3.1 与高速缓存有关的术语 163
7.3.2 HTTP/1.0的高速缓存处理 164
7.3.3 HTTP/1.1的高速缓存处理 165
7.4.1 范围请求 173
7.4 带宽优化 173
7.4.2 期望/继续机制 178
7.4.3 压缩 180
7.5 连接管理 181
7.5.1 HTTP/1.0的Connection:Keep-Alive机制 182
7.5.2 HTTP/1.1持久连接机制的演变 183
7.5.3 Connection标头 185
7.5.4 持久连接的流水线处理 186
7.5.5 关闭持久连接 187
7.6 消息传输 189
7.7.1 获悉服务器的信息 191
7.7 可扩展性 191
7.7.2 获悉中间服务器的信息 194
7.7.3 升级为其他协议 195
7.8 Internet地址保存 196
7.9 内容协商 197
7.10 安全性、身份验证和完整性 200
7.10.1 安全性和身份验证 201
7.10.2 完整性 201
7.11 代理在HTTP/1.1中的作用 202
7.11.1 代理的类型 202
7.11.2 对HTTP/1.1代理的语法要求 203
7.11.3 对HTTP/1.1代理的语义要求 204
7.12 其他杂项改变 206
7.12.1 与方法有关的杂项改变 206
7.12.2 与标头有关的杂项改变 207
7.12.3 与响应码有关的杂项改变 209
7.13 小结 212
第8章 HTTP和TCP的交互 213
8.1 TCP计时器 213
8.1.1 重传计时器 214
8.1.2 慢速开始重新启动 217
8.1.3 TIME_WAIT状态 219
8.2.1 中止的HTTP传输 223
8.2 HTTP/TCP分层 223
8.2.2 Nagle算法 226
8.2.3 延迟的确认 228
8.3 多路复用TCP连接 230
8.3.1 并行连接的动机 231
8.3.2 并行连接的问题 231
8.4 服务器开销 233
8.4.1 组合系统调用 233
8.4.2 管理多个连接 235
8.5 小结 236
第9章 Web流量的测量 238
第4部分 Web流量的测量和特征 238
9.1 Web流量测量的动机 239
9.1.1 内容创建者的动机 239
9.1.2 Web站点托管公司的动机 239
9.1.3 网络运营商的动机 240
9.1.4 Web/网络研究人员的动机 240
9.2 测量技术 241
9.2.1 服务器日志记录 241
9.2.2 代理日志记录 242
9.2.3 客户机日志记录 243
9.2.4 数据包监视 243
9.2.5 主动测量 244
9.3 代理/服务器日志 246
9.3.1 通用日志格式(CLF) 246
9.3.2 扩展通用日志格式(ECLF) 248
9.4 预处理测量数据 249
9.4.1 分析测量数据 249
9.4.2 过滤测量数据 250
9.4.3 转换测量数据 250
9.5 根据测量数据进行推论 251
9.5.1 HTTP标头信息的限制 251
9.5.2 客户机/服务器身份是否一致 252
9.5.3 推论用户动作 253
9.5.4 检测资源是否被修改 254
9.6 测量案例分析 255
9.6.1 萨斯喀彻温服务器日志研究 255
9.6.2 英国哥伦比亚代理日志研究 256
9.6.3 波士顿大学客户机日志研究 257
9.6.4 AT&T公司数据包跟踪研究 258
9.7 小结 259
第10章 Web工作负载特征参数 260
10.1 工作负载特征 261
10.1.1 工作负载模型的应用 261
10.1.2 选取工作负载参数 262
10.2.1 平均值、中值和方差 263
10.2 统计量和概率分布 263
10.2.2 概率分布 264
10.3 HTTP消息的特征 265
10.3.1 HTTP请求方法 265
10.3.2 HTTP响应码 266
10.4 Web资源特征 268
10.4.1 内容类型 268
10.4.2 资源大小 268
10.4.3 响应大小 271
10.4.4 资源流行性 272
10.4.5 资源的变化 274
10.4.6 时间局限性 275
10.4.7 嵌入资源的数量 276
10.5 用户行为特征 276
10.5.1 会话与请求到达 276
10.5.2 每次会话点击 277
10.5.3 请求到达间隔时间 278
10.6 应用工作负载模型 278
10.6.1 组合工作负载参数 278
10.6.2 验证工作负载模型 280
10.6.3 生成综合流量 280
10.7 用户隐私权 281
10.7.1 对用户级数据的访问 282
10.7.2 软件组件可利用的信息 283
10.7.3 用户级数据的应用 284
10.8 小结 285
第5部分 Web应用程序 286
第11章 Web高速缓存 286
11.1 Web高速缓存的起源和目标 287
11.2 为什么要用高速缓存 288
11.3 什么是可高速缓存的 290
11.3.1 协议相关的考虑因素 290
11.3.2 内容相关考虑因素 291
11.4 在哪里进行高速缓存 292
11.5.2 高速缓存的替换和在高速缓存中存储响应 293
11.5.1 决定消息是否能被高速缓存 293
11.5 怎样进行高速缓存 293
11.5.3 高速缓存响应的返回 294
11.5.4 维护高速缓存 294
11.6 高速缓存替换 295
11.7 高速缓存的相关性 296
11.8 资源更改的速度 298
11.9 与高速缓存相关的协议 299
11.9.1 Internet高速缓存协议 299
11.9.2 高速缓存阵列解析协议 300
11.9.3 高速缓存摘要协议 300
11.10.1 高速缓存软件:Squid高速缓存 301
11.10 高速缓存的软件和硬件 301
11.9.4 Web高速缓存协调协议 301
11.10.2 高速缓存硬件 303
11.11 高速缓存的障碍 305
11.11.1 高速缓存破产 305
11.11.2 高速缓存技术中的隐私问题 306
11.12 高速缓存与复制 307
11.13 内容分配 308
11.14 内容适配 309
11.15 小结 310
12.1.1 音频和视频数据 311
12.1 多媒体流播 311
第12章 多媒体流的发送 311
12.1.2 多媒体流播的应用 313
12.1.3 多媒体应用程序的特性 314
12.2 多媒体内容发送 315
12.2.1 性能要求 315
12.2.2 IP网络的局限性 316
12.2.3 HTTP上的多媒体点播 317
12.3 多媒体流播的协议 318
12.3.1 数据传输 319
12.3.2 会话建立 320
12.3.3 会话描述 320
12.3.4 表示描述 321
12.4 实时流播协议 322
12.4.1 相似点和不同点 322
12.4.2 RTSP请求方法 324
12.4.3 RTSP标头 326
12.4.4 RTSP状态码 332
12.5 小结 334
第6部分 研究前景 335
第13章 高速缓存的研究前景 335
13.1 高速缓存的重验证和无效 336
13.1.1 重验证的成本 337
13.1.2 预验证 337
13.1.3 捎带法 338
13.1.4 服务器驱动的无效 342
13.2 端到端的信息交换 343
13.2.1 服务器卷 343
13.2.2 代理过滤器 345
13.2.3 卷和过滤器:应用细节 345
13.2.4 卷构建算法 347
13.2.5 卷构建算法的评估 349
13.2.6 端到端信息交换小结 350
13.3 预取 351
13.3.1 DNS预取 351
13.3.2 连接预取 352
13.3.3 HTTP预取 353
13.3.4 预取中的折衷方案 354
13.4 小结 355
第14章 测量的研究前景 356
14.1 HTTP流量的包监控 357
14.1.1 分接链路 357
14.1.2 捕获包 359
14.1.3 多路分解包 360
14.1.4 重构有序流 361
14.1.5 提取HTTP消息 362
14.1.6 生成HTTP跟踪 363
14.2.1 语法分析和过滤 365
14.2 分析Web服务器日志 365
14.2.2 转换 366
14.3 公开可利用的日志和跟踪 368
14.4 测量多媒体流 369
14.4.1 多媒体资源的静态分析 369
14.4.2 多媒体服务器日志 370
14.4.3 多媒体流的包监控 371
14.4.4 多层包监控 372
14.5 小结 373
第15章 协议的研究前景 374
15.1.1 WebMux:一个实验性的多路复用协议 375
15.1 多路复用HTTP传输 375
15.1.2 TCP控制块相互依赖 376
15.1.3 综合拥塞管理 378
15.2 给HTTP/1.1增加差分机制 379
15.2.1 给HTTP消息增加差分机制的动机 380
15.2.2 delta算法的评估 380
15.2.3 HTTP/1.1中delta机制的配置问题 383
15.2.4 向HTTP/1.1增加delta机制的现状 388
15.3 HTTP/1.1协议的兼容性 388
15.3.1 协议兼容性研究的动机 389
15.3.2 测试客户机和代理的兼容性 389
15.3.3 测试兼容性的方法 390
15.3.4 PRO-COW:大规模的兼容性研究 391
15.3.5 协议兼容性的小结 394
15.4 端对端Web性能测量 394
15.4.1 识别影响端对端性能的因素 394
15.4.2 端对端性能研究报告 397
15 4.3 端对端性能研究小结 401
15.5 有关HTTP的其他扩展 402
15.5.1 透明内容协商 402
15.5.2 WebDAV——Web分布式创作和版本(管理标准) 404
15.5.3 HTTP的扩展框架 404
15.6 小结 405
参考书目 406