繁体   English   中英

提交表单后更正HTTP 1.1标头响应代码

[英]Correct HTTP 1.1 header response code after form submission

在我的MVC框架中,有时我会在提交表单后进行重定向。 假设您将表单发布到/ example / input。

我想在PHP中使用例如header('HTTP/1.1 404 Not Found');添加适当的标头代码和说明性文本header('HTTP/1.1 404 Not Found');

1)您的输入包含错误。 您停留在/ example / input页面上,并再次获取该表单,并标有错误等信息。HTTP 1.1。 代码和文本将是与此重定向指令一起发送的正确代码?

2)您的输入确定,元素被保存,并且您通过Header('Location: ...')重定向到/ example / success。 哪个是HTTP 1.1。 代码和文本在这里合适吗?

3)PHP代码由于配置错误,缺少包含文件,数据库连接损坏或其他原因而引发错误。 哪个是HTTP 1.1。 代码和文本在这里合适吗?

我在这里查看了代码: http : //www.w3.org/Protocols/rfc2616/rfc2616-sec10.html数字200正确显示为1),数字301/302正确显示为2),数字500正确显示3)。 但是在所有这三种情况下,我发现上面链接中的代码后面的标题/解释与我在上面描述的情况不完全匹配。 我应该选择其他代码/文字吗?

第一种情况和第二种情况描述了相同情况的变体:您通过POST提交表单,服务器处理该表单并将客户端重定向到成功页面或重定向到表单。 对于这两种情况,“ 303 See Other”都是正确的响应。 服务器正确处理POST请求后,这是使用GET方法将客户端重定向到资源的正确方法。 根据规格:

存在此方法主要是为了允许POST激活的脚本的输出将用户代理重定向到所选资源。

对于情况3,500代码通常适用于大多数严重错误。

以我的理解,如果您的PHP成功执行,那么200代码是正确的。 因此应注意1和2。

对于3,如果发生致命错误,PHP已经发送了500个代码。

为了进一步说明2,300是用于资源不再位于请求的URL处的情况。 因此,您可以将它们重定向到新的或正确的位置。 在您的情况下,资源就在其中,因此您不需要300代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM