精通 Grails: RESTful Grails
2009-10-26 00:00:00 来源:WEB开发网面向资源的 Web 服务
POST 与 PUT
在 REST 社区存在着有关 POST 和 PUT 在插入新资源方面所起的作用的争议。在 HTTP 1.1 的原始的 RFC(Fielding 是主要作者)中对 PUT 的定义称:如果不存在资源的话,服务器可以创建资源。而如果已经存在资源的话,那么 “……封装的实体必须被当作是对驻留在初始服务器上的实体修改后的版本”。因此如果不存在资源的话,PUT 就等于 INSERT。如果存在资源的话,PUT 就等于 UPDATE。 如果按如下的方式定义 POST 的话,事情就复杂了:
“POST 旨在用一个统一的方法来涵盖以下所有功能:
注释现有资源;
将一则消息发布到告示板、新闻组、邮件列表或者类似文章上;
将诸如表格提交结果这样的数据块提供给数据处理进程;
通过追加操作扩展数据库。”
“注释现有资源” 似乎暗指 UPDATE,而 “将一则消息发布到告示板”、“扩展数据库” 似乎暗指 INSERT。
由于所有的浏览器在提交 HTML 表单数据时都不支持 PUT 方法(它们只支持 GET 和 POST),所以很难确定在哪种情况下使用哪种方法最为明智。
Atom 发布协议(Atom Publishing Protocol)是一个遵循 RESTful 原则的流行的聚合格式。Atom 的 RFC 作者试图给 POST 与 PUT 之间的争议做个了结:
“Atom Publishing Protocol 对如下的 Member Resource 使用 HTTP 方法:
GET 用于检索已知的 Resource 表示。
POST 用于创建新的、动态命名的 Resource……
PUT 用于编辑已知 Resource。不用它来创建 Resource。
DELETE 用于删除已知 Resource。”
- ››精通Photoshop之通道详解
- ››精通 Grails: 使用 Grails 进行单元测试(单元测试...
- ››精通 Grails: 创建自定义插件
- ››精通 Grails: 在企业中使用 Grails
- ››精通 Grails: Grails 与移动 Web
- ››精通 Grails: Grails 与遗留数据库
- ››精通 Grails: RESTful Grails
- ››精通 Grails: 用 JSON 和 Ajax 实现异步 Grails
- ››精通 Grails: 用定制 URI 和 codec 优化 Grails 中...
- ››精通 Grails: 身份验证和授权
- ››精通 Grails: 文件上传和 Atom 联合
- ››精通 Grails: 了解插件
更多精彩
赞助商链接