提交表单后我应该使用 301、302 还是 303 重定向?

Should I use a 301, 302, or 303 redirect after form submission?

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

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

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

这是由标准支持的:

The response to the request can be found under a different URI and SHOULD be retrieved using a GET method on that resource. This method exists primarily to allow the output of a POST-activated script to redirect the user agent to a selected resource. The new URI is not a substitute reference for the originally requested resource. The 303 response MUST NOT be cached, but the response to the second (redirected) request might be cacheable.