HTTP 状态码分类

  1. (1**)消息,服务器收到请求,需要执行请求者继续执行操作
  2. (2**)成功,操作被 成功接收并处理
  3. (3**)重定向,需要进一步操作以完成请求
  4. (4**)客户端错误,请求包含语法错误或无法完成请求
  5. (5**)服务器错误,服务器在处理请求过程中发生了错误

消息(1**)

  • 100 客户端应当继续发送请求

成功(2**)

  • 200 请求成功

重定向(3**)

  • 301 永久移动,请求的资源已被永久的移动到新URL,新的永久性的URL响应在Location域中返回
  • 302 临时移动,客户端继续使用原有的URL
  • 304未修改,(常见前端[ 强制缓存, 比较缓存 ]),服务器不返回任何消息体,该响应必须包含一下头信息(后面介绍)
1
2
3
4
5
6
7
8
304 未修改返回的头信息:
Date
ETag 和/或 Content-Location
Expires, Cache-Control,和/或Vary

### 强制缓存, 比较缓存
1、对于强制缓存,服务器通知浏览器一个缓存时间,在缓存时间内,下次请求,直接用缓存,不在时间内,执行比较缓存策略。
2、对于比较缓存,将缓存信息中的Etag和Last-Modified通过请求发送给服务器,由服务器校验,返回304状态码时,浏览器直接使用缓存,反之,则表示修改了,响应200状态码,返回数据。

客户端错误(4**)

  • 400 客户端请求语法错误,服务器无法理解
  • 401 请求要求用户的身份认证(Authorization)
  • 403 服务器已经理解请求,但是拒绝执行
  • 404 服务器无法根据客户端请求找到资源
  • 414 请求URL过长,服务器无法处理

服务器错误(5**)

  • 500 服务器内部错误(一般是服务端代码出现错误)
  • 501 服务器不支持请求的功能
  • 502 作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应
  • 504 响应超时(作为网关或者代理的服务器,未及时从远端服务器获取请求)