首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >HTTP重定向代码之间的差异

HTTP重定向代码之间的差异
EN

Stack Overflow用户
提问于 2011-01-22 06:06:10
回答 2查看 56.9K关注 0票数 157

不同的HTTP 3XX重定向代码之间的区别我不清楚。是的,我已经阅读了规范,但这里的标准和实际操作之间似乎存在一些差异。

301重定向代码似乎足够清楚:这意味着资源被永久地移动到另一个URI,并且将来的请求应该使用该URI。

而且307重定向代码似乎也很清楚:它意味着重定向是临时的,将来的请求应该仍然使用原始URI。

但我不知道302303之间有什么区别,也不知道为什么他们中的任何一个都不同于301。看起来302的初衷是一个临时的重定向(就像307一样),但实际上,大多数浏览器都把它当作303对待。但是303301有什么区别呢?301是不是意味着重定向更持久?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-22 06:24:29

  • 301:永久重定向。对此资源进行后续请求的客户端应使用新URI。由于未定义的原因,对于POST/PUT/DELETE requests.
  • 302:重定向,客户端应该not自动跟随重定向。对此资源进行后续请求的客户端应该使用新的URI而不是。由于未定义的原因,对于POST/PUT/DELETE requests.
  • 303:重定向,客户端应该not自动跟随重定向。通常情况下,“操作已完成,请继续其他操作。”对此资源进行后续请求的客户端应该使用新的URI而不是。对于POST/PUT/DELETE请求,客户端应该遵循重定向,但是对于后续的临时重定向,则使用GET。资源可能会在以后返回到此位置。对此资源进行后续请求的客户端应使用旧URI。客户端不应删除POST/PUT/DELETE请求的自动重定向。

如果你有选择的话,我个人建议你避免使用302。许多客户在遇到302时并不遵循规范。对于临时重定向,您应该使用303或307,这取决于您希望对非GET请求执行的行为类型。最好是307而不是303,除非你需要POST/PUT/DELETE的替代行为。

票数 150
EN

Stack Overflow用户

发布于 2011-01-22 06:26:24

303和307之间的区别是:

303:请参阅其他。请求已正确接收,但应使用重定向url上的GET检索结果。

307:临时重定向。整个请求应该被重定向到新的url。任何发布的数据都应该重新发布。

请注意,302的目的是具有307的行为,但大多数浏览器将其实现为303的行为(这两种行为在当时都还不存在)。因此,引入了这两个新代码来取代302。

301和303之间的区别:

301:文档已移动。将来的请求应该使用新的url。此url已过时。

注意:要小心使用这段代码。浏览器和代理倾向于在其上应用非常积极的缓存,所以如果你回复301,可能需要很长一段时间才能让人重新访问该url。

303:请求接收正确。任何PUT请求都会被处理。所得到的文档可以从重定向url中检索。将来的请求仍然应该转到原始的url。

票数 87
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4764297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档