这一部分基本上是《图解HTTP》这本书第四章的笔记,获取更多信息可以查看原书,建议支持正版

什么是状态码

状态码的作用

  • 状态码负责表示客户端HTTP请求的返回结果标记服务器端的处理是否正常通知出现的错误等工作。
  • 借助状态码,用户可以知道服务器是正确处理了请求,还是出现了错误。

屏幕快照 2020-03-11 下午3.54.23.png

状态码的分类

  • 状态码中数字第1位指定了响应类别,有以下几种: | | 类别 | 原因短语 | | —- | —- | —- | | 1XX | Information(信息性状态码) | 接受的请求正在处理 | | 2XX | Success(成功状态码) | 请求正常处理完毕 | | 3XX | Redirection(重定向状态码) | 需要进行附加操作以完成请求 | | 4XX | Client Error(客户端错误状态码) | 服务器无法处理请求 | | 5XX | Server Error(服务器错误状态码) | 服务器处理请求出错 |

常用的状态码

状态码数量繁多,但经常使用的大概有14种。

2XX(成功)

200 OK
  • 客户端发来的请求在服务器端被正常处理了。

屏幕快照 2020-03-11 下午5.32.15.png

204 No Content
  • 服务器接收的请求已经正常处理,但在返回的响应报文中不含主体。

屏幕快照 2020-03-11 下午5.32.55.png

206 Partial Content
  • 客户端进行了范围请求,而服务器成功执行了这部分的GET请求。

屏幕快照 2020-03-11 下午5.33.42.png

3XX(重定向)

301 Moved Permanently
  • 永久性重定向
  • 请求的资源已被分配了新的URL,以后应使用新的URL。

屏幕快照 2020-03-11 下午5.34.36.png

302 Found
  • 临时性重定向
  • 请求的资源已被分配了新的URL,希望用户本次能使用新的URL访问。

屏幕快照 2020-03-11 下午5.35.11.png

303 See Other
  • 与302功能相同,但明确表示客户端应采用GET方法获取资源。

屏幕快照 2020-03-11 下午5.35.57.png

304 Not Modified
  • 客户端发送附带条件的请求时,服务器端允许访问资源,但未满足条件。

屏幕快照 2020-03-11 下午5.36.36.png

307 Temporary Redirect
  • 临时重定向
  • 功能与302相同。

4XX(客户端错误)

400 Bad Request
  • 请求报文中存在语法错误

屏幕快照 2020-03-11 下午5.37.36.png

401 Unauthorized
  • 发送的请求需要有通过HTTP认证的认证信息

屏幕快照 2020-03-11 下午5.38.27.png

403 Forbidden
  • 对请求资源的访问被服务器拒绝了。

屏幕快照 2020-03-11 下午5.39.01.png

404 Not Found
  • 服务器上无法找到请求的资源

屏幕快照 2020-03-11 下午5.39.32.png

5XX(服务器错误)

500 Internal Server Error
  • 服务器端在执行请求时发生了错误。
  • 也可能是Web应用存在的Bug或某些临时的故障。

屏幕快照 2020-03-11 下午5.40.04.png

503 Service Unavailable
  • 服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。

屏幕快照 2020-03-11 下午5.40.33.png

有时候返回的状态码是错误的 ❌,但是用户可能觉察不到这一点。