【问题标题】:HTTP Status Codes in a PHP ApplicationPHP 应用程序中的 HTTP 状态码
【发布时间】:2014-03-28 10:49:41
【问题描述】:
我最近决定从我的 PHP 应用程序发送正确的 HTTP 标头。
由于我以前从未这样做过,所以我有几个非常基本的问题。
状态码 200 和 404 似乎很明显。
但是其他的呢?
是否允许/推荐/不推荐使用 403,例如,如果用户必须通过 HTML 表单登录才能使用该页面?
文件上传的 415 怎么样?例如,如果用户上传的图片带有不受支持的扩展名,那么设置 415 标头是否是个好主意?
【问题讨论】:
标签:
php
http
http-status-codes
http-status-code-403
http-status-code-415
【解决方案1】:
W3C 认可代码的完整列表是here。这些定义包含关于何时应该使用和不应该使用每个代码的明确指导。例如,您建议使用的 403 与 W3C 定义不一致。
【解决方案2】:
两次提交可以返回状态 409(冲突),未经授权的提交可以返回状态 401。对于错误请求(无法处理),您可以返回状态 422。Here 和 here 有更多关于 HTTP 状态代码的建议。
【解决方案3】:
这取决于您创建的应用程序。
如果您创建 restfull 应用程序,则必须使用正确的状态代码。
但是,当您创建后端生成的网站时,如何处理客户端/服务器错误和路由取决于您。
我认为这是唯一的一条规则 - 为了获得良好的用户体验 - 以正确的方式处理所有错误(如果 401 则重定向到登录等)
【解决方案4】:
我认为您应该将这些状态代码用于典型网站:
- 200 好的(如果一切正常,即使有人上传了损坏的文件也是如此 - 向用户发送错误消息)
- 301 永久重定向
- 302 暂时重定向
- 304 未修改
- 404 未找到
- 410 走了
如果您正在构建 REST Web 服务,则可以使用更多状态代码。但是对于一个典型的网站,上面列出的状态码就可以了。