提交表单后我应该使用 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.
我正在 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.