sys*_*USE 577
HTTP规范(RFC 2616)有许多适用的建议.这是我的解释:
200 OK用于成功更新现有资源的PUT.不需要响应机构.(根据第9.6节,204 No Content更合适.)201 Created用于新资源的成功PUT的HTTP状态代码,具有在Location头字段中返回的新资源的最特定URI以及在响应主体中回显的资源的任何其他相关URI和元数据.(RFC 2616第10.2.2节)409 Conflict用于PUT是不成功的,因为一3 次三方变形例中,与所尝试的更新,并在响应体中的当前资源之间的差异的列表.(RFC 2616第10.4.10节)400 Bad Request不成功的PUT的HTTP状态代码,在响应正文中使用自然语言文本(例如英语)来解释PUT失败的原因.(RFC 2616第10.4节)Lio*_*orH 151
与此处的大多数答案相反,我实际上认为PUT应该返回更新的资源(当然除了HTTP代码之外).
您希望将资源作为PUT操作的响应返回的原因是,当您向服务器发送资源表示时,服务器也可以对此资源应用一些处理,因此客户端想知道该资源是如何处理的看似请求成功完成后.(否则它将不得不发出另一个GET请求).
我认为服务器有可能返回内容以响应 PUT。如果您使用的响应信封格式允许旁加载数据(例如 ember-data 使用的格式),那么您还可以包含可能已通过数据库触发器等修改的其他对象(旁加载数据显式减少# 请求,这似乎是优化的好地方。)
如果我只是接受 PUT 并且没有什么要报告的,我会使用没有正文的状态代码 204。如果我有什么要报告的,我会使用状态代码 200,并包含一个正文。
| 归档时间: |
|
| 查看次数: |
188539 次 |
| 最近记录: |