第1章:Programmable Web及其分类 1
Programmable Web的分类 4
HTTP:信封里的文档 5
方法信息 8
作用域信息 11
相互竞争的服务架构 13
Programmable Web涉及的技术 18
其他术语 20
第2章:编写Web服务客户端 23
Web服务就是网站 23
del.icio.us:示例应用 26
用HTTP库发送请求 29
用XML解析器处理响应 38
JSON Parsers:处理序列化数据 44
WADL简化客户端的编写 47
第3章:REST式服务有什么特别不同? 49
介绍Simple Storage Service 49
S3的面向对象设计 50
资源 52
HTTP响应代码 54
一个S3客户端 55
对请求进行签名及访问控制 64
使用S3客户端库 70
用ActiveResource创建透明的客户端 71
最后的话 77
第4章:面向资源的架构 79
面向资源的架构? 79
什么是资源? 81
URIs 81
可寻址性 84
无状态性 86
表示 91
链接与连通性 94
统一接口 97
结束了! 105
第5章:设计只读的面向资源的服务 107
资源设计 108
根据需求创建只读资源 109
规划数据集 110
把数据集划分为资源 112
命名资源 117
设计表示 123
把资源相互链接起来 135
HTTP响应 137
小结 140
第6章:设计可读写的面向资源的服务 143
将用户账户作为资源 144
自定义地点 157
回顾地图服务 165
第7章:一个服务实现 167
一个社会性书签Web服务 167
规划数据集 168
资源设计 171
设计来自客户端的表示 183
设计发给客户端的表示 184
把资源相互链接起来 185
会有哪些典型的事件经过? 186
可能出现哪些错误情况? 187
控制器代码 188
模型代码 205
客户端需要知道什么? 209
第8章:REST和ROA最佳实践 215
面向资源的基础 215
一般的ROA设计步骤 216
可寻址性 216
状态与无状态性 217
连通性 218
统一接口 218
一些重要方面 221
资源设计 227
URI设计 233
返回的表示 234
收到的表示 234
服务的版本化 235
永久URIs vs可读的URIs 236
HTTP的标准特性 237
仿造PUT和DELETE 251
Cookies的问题 252
用户凭什么信任HTTP客户端? 253
第9章:服务的技术构件 259
表示格式 259
预定义的控制流 272
超媒体技术 284
第10章:面向资源的架构VS大Web服务 299
大Web服务试图解决哪些问题? 300
SOAP 300
WSDL 304
UDDI 309
安全性 310
可靠消息传递 311
事务 312
BPEL、ESB和SOA 313
小结 314
第11章:将Ajax应用作为REST客户端 315
从AJAX到Ajax 315
Ajax架构 316
一个del.icio.us示例 317
Ajax的优点 320
Ajax的缺点 320
REST更好 322
发送请求 323
处理响应 324
ISON 325
不要私享REST的好处 326
跨浏览器问题和Ajax库 327
颠覆浏览器安全模型 331
第12章:REST式服务框架 339
Ruby on Rails 339
Restlet 343
Django 354
小结 364
附录A:REST相关资源与REST式资源 365
标准与指南 365
你可以使用的服务 367
附录B:42种常见的HTTP响应代码 371
三至七种最基本的响应代码 372
1xx:通知 373
2xx:成功 374
3xx:重定向 377
4xx:客户端错误 380
5xx:服务器端错误 387
附录C:常见的HTTP报头 389
标准报头 390
非标准报头 404
索引 409