2

使用“Response.PermanentRedirect”时

它将返回 Http Response Code 301,这意味着永久重定向到不同的位置。这对于使用浏览器的最终用户可能没有任何价值,但对于搜索引擎来说,它将帮助搜索引擎不索引永久重定向的 url。

问题-Delete Verb在 MVC 中是否执行相同的功能?


发布一个新实体作为 URI 的补充。Put替换由 URI 标识的实体。

问题- 执行插入/更新时,两种情况下都提交了信息。这是否意味着在插入的情况下Post verb应该使用并且在更新的情况下Put verb应该使用?

4

1 回答 1

2

要回答您的第一个问题:

从 RESTful API 的角度来看,必须使用 DELETE 从其父级中删除资源,该父级通常是集合或存储。一旦针对给定资源处理了 DELETE 请求,客户端就无法再找到该资源。因此,任何将来尝试使用 GET 或 HEAD 检索资源的状态表示,都必须导致 API 返回 404(“未找到”)状态。

DELETE 方法在 HTTP 中具有非常特定的语义,不能被 REST API 的设计重载或拉伸。具体来说,API 不应通过将 DELETE 映射到较小的操作来扭曲 DELETE 的预期含义,从而使资源及其 URI 可供客户端使用。

204(“无内容”)应用于响应 PUT、POST 或 DELETE 请求

Response.PermanentRedirect 表明 REST API 的资源模型已经过重大重新设计,并且已将新的永久 URI 分配给客户端请求的资源。REST API 应该在响应的Location标头中指定新的 URI。

301(“Moved Permanently”)应该用于重新定位资源

对于 Post 和 Put :

PUT 必须用于添加具有客户端指定 URI 的新资源,并且还必须用于更新或替换已存储的资源。PUT 还必须用于更新可变资源,而 POST 必须用于在集合中创建新资源。

于 2012-10-29T09:18:22.440 回答