0

HTTP 303 是否可用于其他 HTTP 方法?我们确定HTTP 303可用于其他 HTTP 方法。

Post/Redirect/Get模式要求服务器在返回之前执行操作HTTP 303HTTP PUT对于这种和DELETE其他类型的重定向是否也是如此?重定向前是否需要服务器执行操作?或者它是否可以假设客户端会根据需要在规范 URL 上重复请求?

当您考虑到重定向通常用于负载平衡这一事实时,这变得更加有趣。

4

1 回答 1

0

引用RESTful Web 服务第 378 页:

303(“见其他”)

请求已被处理,但不是服务器发送响应文档,而是向客户端发送响应文档的 URI。这可能是静态状态消息的 URI,或者是一些更有趣的资源的 URI。

几页后...

307(“临时重定向”)

请求尚未处理,因为请求的资源不在本地:它位于某个其他 URI。客户端应将请求重新提交到另一个 URI。对于GET请求,唯一被请求的是服务器发送一个表示,这个状态码是相同的to 303 (“See Other”)对 a 做出良好响应的典型情况是服务器想要将客户端发送到镜像站点。307GET但是对于POST, PUT, and DELETE请求,服务器应该采取一些行动来响应请求,这个状态码与303. A303回应POST, PUT, or DELETE表示操作已成功,但响应实体主体未与此请求一起发送。如果客户端想要响应实体主体,它需要GET向另一个 URI 发出请求。A307响应 aPOST, PUT, or DELETE意味着服务器甚至还没有尝试执行该操作。客户端需要将整个请求重新提交到Location标头中的 URI。

一个类比可能会有所帮助。您带着要开的处方去药房。A303是药剂师说“我们已经为您开药了。去下一个窗口取药。” A307是药剂师说“我们不能开那个处方。去隔壁的药店。”</p>

于 2012-12-07T00:28:37.957 回答