参考:rfc2616,https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status
HTTP响应码分为5种,1xx,2xx,3xx,4xx,5xx,来看一些这么多的响应码的含义。目前来看,没有一个web服务器实现了所有的响应码,因此,实践中见不到所有的响应码是正常的。
信息响应 1xx
100 Continue
客户端应该继续请求。100响应码表明服务器已经收到客户端的部分请求,并且客户端可以继续请求。
101 Switching Protocols
服务器理解客户端请求并将完成请求的处理。服务器会在相应中的头部带有Upgrade,来转换HTTP协议,例如从HTTP/1.0更新到HTTP/1.1。
成功响应 2xx
200 OK
请求成功了。例如GET,HEAD,POST,TRACE等请求,服务器正常返回响应内容。这个是最常见的响应码。
201 Created
服务器创建了一个资源。例如PUT请求,在服务器上创建了一个资源(文件)。
202 Accepted
请求已经接收到,但还没完成处理。
203 Non-Authoritative Information
服务器已成功处理了请求,但返回的实体头部元信息不是在原始服务器上有效的确定集合,而是来自本地或者第三方的拷贝。
204 No Content
服务器已经处理了请求,但是没有必要返回响应体,可能希望返回更新了的元信息。
205 Reset Content
服务器成功处理了请求,且没有返回任何内容。
206 Partinal Content
服务器返回了部分响应内容。在请求头部,使用了Range字段,例如Range: bytes=100-200,服务器如果支持就会返回内容的第101-200字节,注意是从0开始的。Range也可以分段请求,例如 Range: bytes=10-20,30-40,或者请求资源的最后多少个字节,如Range: bytes=-500,表明客户端希望获得资源的最后500个字节的内容。下面使用curl添加头部字段Range对http://www.baidu.com/ 发起GET请求,服务器返回了206,并返回了部分内容。
302
302表示永久重定向,在响应头部中,Location字段指明了重定向的资源位置。
400 Bad Request
400表示服务器无法理解和处理该HTTP请求,或该HTTP请求不合理。
403 Forbidden
该资源禁止访问
404 Not Found
该资源不存在
502 Bad Gateway
代理或网关无法连接到Web服务器
504 Timeout
连接服务器超时或服务器响应超时