状态码用来告诉HTTP客户端HTTP服务器是否产生了预期的response。状态码总共只有三位,第一位表示状态类别,共分为五种。
(1)1xx:是进度通知类状态,意思就是说“请求我已经收到了,或你的请求我正在处理”。
(2)2xx:表示“你的请求我已经成功处理了”。
(3)3xx:即重定向,也就是服务器告诉客户端“你要的资源搬家了,你到某某地方再去找它吧”。
(4)4xx:客户端发来的响应报文里有些错误,比如语法错误或请求的资源不存在等。
(5)5xx:服务器端有些问题,已经无法处理完成你的请求了。
常用的状态码并不多,用服务器与客户端对话的形式把常见的状态码含义列举如下。
(1)200 OK:客户端,你的请求处理成功,你要的东西就在响应报文里了。
(2)301 Moved Permanently:客户端,你要请求的资源已经永久地搬家了,我把它的新地址放到了Location头部域中了。
(3)302 Moved Temporarily:客户端,你要请求的资源临时有事去别的地方了,我把它的位置放到Location头部域中了,你可以先去那里找它,不过它应该会回到它原来的家的。
(4)304 Not Modified:客户端,你要请求的资源自从上次你请求之后,就再也没有改动过。我想你应该早就有这个资源了,所以在响应报文的数据部分我就没有再放这个资源。
(5)400 Bad Request:客户端,你发来的请求报文里有语法错误,服务器端实在看不懂。
(6)401 Unauthorized:客户端,你发来的请求不是合法来源的请求,你是没有被授权的客户端吧。
(7)403 Forbidden:服务器端顺利收到了客户端的请求,但因为某些理由,服务器端拒绝为你提供服务。
(8)404 Not Found:客户端,你请求的资源不存在,八成是资源地址写错了。
(9)500 Internal Server Error:很遗憾,服务器不能给你提供服务了,服务器内部出现了不可预知的问题。
(10)502 Bad Gateway:客户端你好,我是请求报文的代理服务器,持有资源的那个服务器在给我发送资源时出问题了。
(11)503 Server Unavailable:服务器现在可能是太忙了,暂时不能给你这个客户端提供服务,或许稍后会恢复的。
除了以上几个常用的状态码,还有许多其他含义的状态码。完整状态码含义表如下。
- 请求收到,继续处理
HTTP 100—客户必须继续发出请求
HTTP 101—客户要求服务器根据请求转换HTTP协议版本
- 操作成功收到,分析、接受
HTTP 200—交易成功
HTTP 201—提示知道新文件的URL
HTTP 202—接受和处理,但处理未完成
HTTP 203—返回信息不确定或不完整
HTTP 204—请求收到,但返回信息为空
HTTP 205—服务器完成了请求,用户代理必须复位当前已经浏览过的文件
HTTP 206—服务器已经完成了部分用户的get请求
- 完成此请求必须进一步处理
HTTP 300—请求的资源可在多处得到
HTTP 301—删除请求数据
HTTP 302—在其他地址发现了请求数据
HTTP 303—建议客户访问其他URL或访问方式
HTTP 304—客户端已经执行了get,但文件未变化
HTTP 305—请求的资源必须从服务器指定的地址得到
HTTP 306—前一版本HTTP中使用的代码,现行版本中不再使用
HTTP 307—申明请求的资源临时性删除
- HTTP 306—前一版本HTTP中使用的代码,现行版本中不再使用HTTP 307—申明请求的资源临时性删除
HTTP 400—错误请求,如语法错误
HTTP 401—未授权
HTTP 401.1—未授权:登录失败
HTTP 401.2—未授权:服务器配置问题导致登录失败
HTTP 401.3—未授权:禁止访问资源
HTTP 401.4—未授权:授权被筛选器拒绝
HTTP 401.5—未授权:ISAPI或CGI授权失败
HTTP 402—保留有效ChargeTo头响应
HTTP 403—禁止访问
HTTP 403.1—禁止访问:禁止可执行访问
HTTP 403.2—禁止访问:禁止读访问
HTTP 403.3—禁止访问:禁止写访问
HTTP 403.4—禁止访问:要求SSL
HTTP 403.5—禁止访问:要求SSL 128
HTTP 403.6—禁止访问:IP地址被拒绝
HTTP 403.7—禁止访问:要求客户证书
HTTP 403.8—禁止访问:禁止站点访问
HTTP 403.9—禁止访问:连接的用户过多
HTTP 403.10—禁止访问:配置无效
HTTP 403.11—禁止访问:密码更改
HTTP 403.12—禁止访问:映射器拒绝访问
HTTP 403.13—禁止访问:客户证书已被吊销
HTTP 403.14—禁止访问:Web服务器被配置不列出此目录的内容
HTTP 403.15—禁止访问:客户访问许可过多
HTTP 403.16—禁止访问:客户证书不可信或者无效
HTTP 403.17—禁止访问:客户证书已经到期或者尚未生效
HTTP 404—没有发现文件、查询或URl
HTTP 405—用户在Request-Line字段定义的方法不允许
HTTP 406—无法接受用户发送的请求,请求资源不可被访问
HTTP 407—类似401,用户必须首先在代理服务器上得到授权
HTTP 408—客户端没有在用户指定的时间内完成请求
HTTP 409—对当前资源状态,请求不能完成
HTTP 410—服务器上不再有此资源且无进一步的参考地址
HTTP 411—服务器拒绝用户定义的Content-Length属性请求
HTTP 412—一个或多个请求头字段在当前请求中错误
HTTP 413—请求的资源大于服务器允许的大小
HTTP 414—请求的资源URL长于服务器允许的长度
HTTP 415—请求资源不支持请求项目格式
HTTP 416—请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求也不包含If-Range请求头字段
HTTP 417—在请求头Expect中指定的预期内容无法被服务器满足。或者这个服务器是一个代理服务器,它在当前路由的下一个节点上,Expect的内容无法被满足。
- 服务器执行一个完全有效请求失败
HTTP 500—内部服务器错误
HTTP 500.11—服务器关闭
HTTP 500.12—应用程序重新启动
HTTP 500.13—服务器太忙
HTTP 500.14—应用程序无效
HTTP 500.15—不允许请求
HTTP 501—未实现
HTTP 502—网关错误