状态码用来告诉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:服务器现在可能是太忙了,暂时不能给你这个客户端提供服务,或许稍后会恢复的。

除了以上几个常用的状态码,还有许多其他含义的状态码。完整状态码含义表如下。

  1. 请求收到,继续处理

HTTP 100—客户必须继续发出请求

HTTP 101—客户要求服务器根据请求转换HTTP协议版本

  1. 操作成功收到,分析、接受

HTTP 200—交易成功

HTTP 201—提示知道新文件的URL

HTTP 202—接受和处理,但处理未完成

HTTP 203—返回信息不确定或不完整

HTTP 204—请求收到,但返回信息为空

HTTP 205—服务器完成了请求,用户代理必须复位当前已经浏览过的文件

HTTP 206—服务器已经完成了部分用户的get请求

  1. 完成此请求必须进一步处理

HTTP 300—请求的资源可在多处得到

HTTP 301—删除请求数据

HTTP 302—在其他地址发现了请求数据

HTTP 303—建议客户访问其他URL或访问方式

HTTP 304—客户端已经执行了get,但文件未变化

HTTP 305—请求的资源必须从服务器指定的地址得到

HTTP 306—前一版本HTTP中使用的代码,现行版本中不再使用

HTTP 307—申明请求的资源临时性删除

  1. 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的内容无法被满足。

  1. 服务器执行一个完全有效请求失败

HTTP 500—内部服务器错误

HTTP 500.11—服务器关闭

HTTP 500.12—应用程序重新启动

HTTP 500.13—服务器太忙

HTTP 500.14—应用程序无效

HTTP 500.15—不允许请求

HTTP 501—未实现

HTTP 502—网关错误