我应该在提交表单后使用 301、302 还是 303 重定向?
Posted
技术标签:
【中文标题】我应该在提交表单后使用 301、302 还是 303 重定向?【英文标题】:Should I use a 301, 302, or 303 redirect after form submission? 【发布时间】:2016-09-17 04:06:49 【问题描述】:我正在用 php 创建一个简单的问答留言板。当有人提交问题的答案时,php 脚本会将用户重定向到原始问题,并在页面底部显示更新的答案。
在这种情况下,使用 301、302 或 303 重定向会更好吗?我在考虑 302 重定向,因为重定向不是永久的或静态的——重定向取决于发送到提交脚本的参数。但是,我也看到某些表单也推荐了 303。
【问题讨论】:
【参考方案1】:对于这种情况,正确的重定向应该是 303 重定向,因为您是从表单提交(可能是 POST 请求)重定向到查看页面(应该是 GET 请求)并且它是临时重定向(即重定向可能会根据参数而改变)。
这是由标准支持的:
可以在不同的 URI 下找到对请求的响应,并且应该在该资源上使用 GET 方法检索。此方法的存在主要是为了允许 POST 激活脚本的输出将用户代理重定向到选定的资源。新的 URI 不是原始请求资源的替代引用。 303 响应不得缓存,但对第二个(重定向)请求的响应可能是可缓存的。
【讨论】:
谢谢。经过一些研究,包括您引用的标准,我继续进行 303 重定向。以上是关于我应该在提交表单后使用 301、302 还是 303 重定向?的主要内容,如果未能解决你的问题,请参考以下文章