不同的HTTP 3XX重定向代码之间的区别我不清楚。是的,我已经阅读了规范,但这里的标准和实际操作之间似乎存在一些差异。
301
重定向代码似乎足够清楚:这意味着资源被永久地移动到另一个URI,并且将来的请求应该使用该URI。
而且307
重定向代码似乎也很清楚:它意味着重定向是临时的,将来的请求应该仍然使用原始URI。
但我不知道302
和303
之间有什么区别,也不知道为什么他们中的任何一个都不同于301
。看起来302
的初衷是一个临时的重定向(就像307
一样),但实际上,大多数浏览器都把它当作303
对待。但是303
和301
有什么区别呢?301
是不是意味着重定向更持久?
发布于 2011-01-22 06:24:29
如果你有选择的话,我个人建议你避免使用302。许多客户在遇到302时并不遵循规范。对于临时重定向,您应该使用303或307,这取决于您希望对非GET请求执行的行为类型。最好是307而不是303,除非你需要POST/PUT/DELETE的替代行为。
发布于 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。
https://stackoverflow.com/questions/4764297
复制相似问题