【问题标题】:Should I use a 301, 302, or 303 redirect after form submission?我应该在提交表单后使用 301、302 还是 303 重定向?
【发布时间】:2016-09-17 04:06:49
【问题描述】:

我正在用 php 创建一个简单的问答留言板。当有人提交问题的答案时,php 脚本会将用户重定向到原始问题,并在页面底部显示更新的答案。

在这种情况下,使用 301、302 或 303 重定向会更好吗?我在考虑 302 重定向,因为重定向不是永久的或静态的——重定向取决于发送到提交脚本的参数。但是,我也看到某些表单也推荐了 303。

【问题讨论】:

    标签: php forms redirect http-status-code-301 http-status-code-302


    【解决方案1】:

    对于这种情况,正确的重定向应该是 303 重定向,因为您是从表单提交(可能是 POST 请求)重定向到查看页面(应该是 GET 请求)并且它是临时重定向(即重定向可能会根据参数而改变)。

    这是由标准支持的:

    可以在不同的 URI 下找到对请求的响应,并且应该在该资源上使用 GET 方法检索。此方法的存在主要是为了允许 POST 激活脚本的输出将用户代理重定向到选定的资源。新的 URI 不是原始请求资源的替代引用。 303 响应不得缓存,但对第二个(重定向)请求的响应可能是可缓存的。

    【讨论】:

    • 谢谢。经过一些研究,包括您引用的标准,我继续进行 303 重定向。
    猜你喜欢
    • 2021-03-22
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    • 2019-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多