一 解释下HTTP所有状态码分别表示什么意思?

HTTP状态码是HTTP协议中服务器响应客户端请求时返回的3位数字代码,用于表示请求的处理结果。这些状态码被分为五大类,每个类别用一个数字范围表示,具体分类及其含义如下:

1.1 1xx - 信息性状态码(Informational)

这一类状态码表示接收的请求正在处理,客户端需要继续等待最终的响应。

  • 100 Continue:请求的初步信息已经接受,客户端应该继续发送剩余的请求内容。
  • 101 Switching Protocols:服务器将遵照 Upgrade 消息头切换协议。

1.2 2xx - 成功状态码(Successful)

表示请求已成功被服务器接收、理解,并接受。

  • 200 OK:请求已成功处理,响应中通常会携带请求的资源或结果。
  • 201 Created:请求成功并且服务器创建了新的资源。
  • 202 Accepted:请求已接受,但处理未完成。
  • 204 No Content:请求成功,但响应中不含内容。
  • 206 Partial Content:服务器成功处理了部分GET请求。

1.3 3xx - 重定向状态码(Redirection)

需要客户端进一步的操作才能完成请求。

  • 301 Moved Permanently:请求的资源已永久移动到新位置。
  • 302 Found:临时重定向。
  • 303 See Other:应当使用GET方法请求另一个URI来获取响应。
  • 304 Not Modified:资源未修改,客户端可以使用缓存的版本。
  • 307 Temporary Redirect:临时重定向,要求保持请求方法不变。

1.4 4xx - 客户端错误状态码(Client Error)

表示客户端的请求有错误,服务器无法处理。

  • 400 Bad Request:请求无效或无法理解。
  • 401 Unauthorized:请求要求身份验证。
  • 403 Forbidden:服务器拒绝请求。
  • 404 Not Found:服务器找不到请求的资源。
  • 405 Method Not Allowed:请求方法不被允许。

1.5 5xx - 服务器错误状态码(Server Error)

表示服务器在处理请求过程中发生了错误。

  • 500 Internal Server Error:服务器遇到了未知的错误。
  • 501 Not Implemented:服务器不支持请求的功能。
  • 502 Bad Gateway:作为网关或代理工作的服务器从上游服务器收到了无效响应。
  • 503 Service Unavailable:服务器目前无法处理请求(过载或维护)。
  • 504 Gateway Timeout:作为网关或代理工作的服务器未能及时从上游服务器收到响应。

每个状态码都有其特定的含义,帮助客户端理解请求的结果,进而作出相应的处理。