HTTP状态码是服务器对客户端请求的响应代码

118 阅读4分钟

HTTP状态码是服务器对客户端请求的响应代码,表示了请求被接收、理解和处理的状态。状态码被分为五个类别,每个类别有其特定的用途:

1xx:信息响应

  • 100 Continue:客户端应继续其请求
  • 101 Switching Protocols:服务器根据客户端的请求切换协议
  • 102 Processing(WebDAV):服务器已接受请求,但尚未处理完成

2xx:成功

  • 200 OK:请求成功,服务器返回请求的资源
  • 201 Created:请求成功并且服务器创建了新的资源
  • 202 Accepted:服务器已接受请求,但尚未处理
  • 203 Non-Authoritative Information:服务器是一个转换代理服务器(transforming proxy,如Web加速器)并且接收了200 OK从其上游,但返回的响应来自原始服务器的200 OK的转换版本
  • 204 No Content:服务器成功处理了请求,但不需要返回任何实体内容
  • 205 Reset Content:服务器成功处理了请求,且没有返回任何内容,但是要求请求者重置文档视图
  • 206 Partial Content:服务器成功处理了部分GET请求

3xx:重定向

  • 300 Multiple Choices:针对请求,服务器可执行多种操作。服务器可根据请求选择一项操作,或提供操作列表供客户端选择
  • 301 Moved Permanently:请求的网页已永久移动到新位置
  • 302 Found:服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行后续请求
  • 303 See Other:服务器返回这个状态码来重定向客户端到GET请求指定的资源
  • 304 Not Modified:自从上次请求后,请求的网页未修改过
  • 307 Temporary Redirect:服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行后续请求
  • 308 Permanent Redirect:请求的资源现在永久位于另一个URI,这和301类似,但使用GET方法重定向

4xx:客户端错误

  • 400 Bad Request:服务器不理解请求的语法
  • 401 Unauthorized:请求要求身份验证
  • 403 Forbidden:服务器拒绝请求
  • 404 Not Found:服务器找不到请求的网页
  • 405 Method Not Allowed:禁用请求中指定的方法
  • 406 Not Acceptable:无法使用请求的内容特性响应请求的网页
  • 407 Proxy Authentication Required:此状态码类似于401(Unauthorized),但指定请求者应当授权使用代理
  • 408 Request Timeout:服务器等候请求时发生超时
  • 409 Conflict:请求与服务器当前状态冲突
  • 410 Gone:请求的资源已被永久删除
  • 411 Length Required:服务器不接受不含有效内容长度标头字段的请求
  • 412 Precondition Failed:服务器未满足请求者在请求中设置的其中一个前提条件
  • 413 Payload Too Large:请求实体过大
  • 414 URI Too Long:请求的URI过长
  • 415 Unsupported Media Type:请求的格式不受请求页面的支持
  • 416 Range Not Satisfiable:客户端请求的范围无效
  • 417 Expectation Failed:服务器无法满足Expect的请求头信息

5xx:服务器错误

  • 500 Internal Server Error:服务器遇到错误,无法完成请求
  • 501 Not Implemented:服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码
  • 502 Bad Gateway:服务器作为网关或代理,从上游服务器收到无效响应
  • 503 Service Unavailable:服务器目前无法使用(由于超载或停机维护)
  • 504 Gateway Timeout:服务器作为网关或代理,但是没有及时从上游服务器收到请求
  • 505 HTTP Version Not Supported:服务器不支持请求中所用的HTTP协议版本
  • 506 Variant Also Negotiates(透明内容协商):服务器有一个内部配置错误:透明内容协商协议导致服务器选择自身的透明内容协商,从而不是选择一个适合请求的最佳变体
  • 507 Insufficient Storage(WebDAV; RFC 4918)
  • 508 Loop Detected(WebDAV; RFC 5842)

每个状态码都有其特定的意义和应用场景,了解和正确使用这些状态码对开发高质量的Web应用和API至关重要。