在我的MVC框架中,我有时会在表单提交后重定向。假设您将表单发布到/ example / input。
我想在PHP中添加适当的标题代码和解释性文本,例如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)。但在所有这三种情况下,我发现上面链接上的代码后面的标题/解释并不完全符合我上面描述的场景。我应该选择其他代码/文字吗?
答案 0 :(得分:4)
案例一和二描述相同情况的变体:您通过POST提交表单,服务器处理它并将客户端重定向到成功页面或返回到表单。对于这两种情况,“303见其他”是正确的答案。这是在服务器正确处理POST请求后使用GET方法将客户端重定向到资源的正确方法。根据规范:
此方法主要用于允许输出POST激活 用于将用户代理重定向到选定资源的脚本。
对于案例3,500代码通常适用于大多数关键错误。
答案 1 :(得分:1)
根据我的理解,如果您的PHP成功执行,那么200代码是正确的。所以这应该照顾1和2。
对于3,如果发生致命错误,PHP已经发送了500个代码。
为了更多地解释2,300s用于资源不再位于请求的URL时。因此,您可以将它们重定向到新的或正确的位置。在您的情况下,资源就在那里,因此您不需要300代码。