1xx 系列:消息
100 Continue
初始请求已接受,应继续发送请求的其余部分
101 Switch Protocols
服务器将切换协议(比如建立 WebSocket)
2xx 系列:成功
200 OK
请求成功
201 Created
已创建,成功请求并创建了新资源
202 Accepted
已接受,但未处理完成
204 No Content
请求已成功,但未返回数据(比如使用 PUT 方法上传新资源,或使用 DELETE 方法删除服务器资源)
206 Partial Content
返回部分资源(实现 HTTP 断点续传)(响应报文中包含由 Content-Range 指定范围的实体内容)
3xx 系列:重定向
300 Mutiple Choice
客户端请求对应有多种响应,用户应继续选择其中一个
301 Moved Permanently
永久重定向,浏览器会自动访问新 URL
302 Found
临时重定向(没有规定用哪种 Method,被细分为 303 和 307)(登录拦截)
303 See Other
临时重定向,使用 GET 重定向请求
307 Temporary Redirect
临时重定向,使用同样的 Method 重定向请求
304 Not Modified
原缓冲可继续使用(客户端提供 If-Modified-Since/etag,服务器返回 Last-Modified/if-none-match)
305 Use Proxy
客户端应通过代理请求资源,由于安全原因此状态码没有普及
4xx 系列:客户端错误
400 Bad Request
请求出现语法错误
401 Unauthorized
未经授权,但可以通过授权再次请求
403 Forbidden
禁止访问
404 Not Found
找不到资源
405 Method Not Allowed
请求方法不适用
406 Not Acceptable
服务器无法根据请求内容完成请求,MIME 类型与客户端指定的 Accpet 头不兼容
5xx 系列:服务端错误
500 Internal Server Error
服务器错误
501 Not Implemented
服务器不支持实现请求所需要的功能(比如客户发出了服务器不支持的 PUT 请求)
502 Bad Gateway
充当网关或代理的服务器收到远程服务器错误
503 Service Unavailable
由于超载或系统维护,服务器暂时无法处理客户端的请求,服务器可能同时返回 Retry-After 头
504 Gateway Timeout
充当网关或代理的服务器不能及时收到远程服务器的响应
505 HTTP Version Not Supported
服务器不支持请求使用的 HTTP 版本
使用方法
- 建立新的 WebSocket 连接时会先走一次 HTTP 协议,返回 101 状态码。
- 直接访问
jd.com
,浏览器与服务器的状态为:
-> 302 (Location: http://www.jd.com/)
-> 307 (Location: https://www.jd.com/)
-> 200
- 用户没有登录时访问需要登录的页面,可使用 302 重定向到登录页面。
- 用户发送的请求缺少必要的参数,比如登陆时没有密码,可返回 400 状态码。
- 普通用户访问管理员页面,可返回 403 状态码。
- 应使用 POST 请求却使用了 GET 请求,可返回 405 状态码。
- 访问国外某些网站时由于众所周知的原因,可能会出现 502 / 504 状态码。