什么是HTTP状态码?

用以表示网页服务器、超文本传输协议响应状态的三位数字代码


HTTP状态码有啥用?

负责表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作


HTTP状态码的类别

HTTP状态码 = 三位数字(第一位表示类别) + 原因短语

  • 1XX
    类别:informational 信息性状态码
    原因短语:接收的请求正在处理
  • 2XX
    类别:success 状态成功码
    原因短语:请求正常处理完毕
  • 3XX
    类别:redirection 重定向状态码
    原因短语:需要进行附加操作完成请求
  • 4XX
    类别:client error 客户端错误状态码
    原因短语:服务器无法处理请求
  • 5XX
    类别:server error 服务器错误状态码
    原因短语:服务器处理请求错误

1XX 信息响应

  • 100:继续
    一切正常,继续请求
  • 101:协议切换
    表示服务器应客户端升级协议的请求(Upgrade请求头)正在进行协议切换。服务器会发送一个Upgrade响应头来表示其正在切换过去的协议。

2XX 成功响应

  • 200:成功
    客户端发来的请求被正常处理了
    不同的方法,请求成功的意义不同:
    GET:对应的请求资源实体会作为相应返回
    POST:响应的消息体中包含请求的结果
  • 201:请求成功,创建新资源
  • 202:已接受
    收到请求,但未处理
  • 203:非授权信息
    服务器已经成功处理了请求,但是返回的信息头部的元信息不是在原始服务器上的有效确定集合(未授权信息),而是来自第三方或者本地的拷贝
  • 204:没有内容
    服务器成功处理了客户端请求,但服务器无返回内容。
  • 205:重置内容
    服务器成功处理了请求,但没有返回任何内容,且要求请求者重置文档视图。
  • 206:部分内容
    表示客户端进行了范围请求,而服务器成功执行了这部分GET请求。响应报文中包含由Content-Range指定范围的实体内容

3XX 重定向

  • 300:多项选择
    表示该请求拥有多种可能的响应,用户从中选择一个
  • 301 永久性重定向
    请求的资源已经被分配了新的URL,以后应该使用现在所指的URL。
  • 302 临时性重定向
    请求的资源已经被分配了新的URL,希望用户本次使用新的URL访问
  • 303 参见其他
    请求的资源存在另一个URL,应使用get方法定向获取资源
    302不会改变http请求方法,303会
  • 304 未修改
    当客户端发送附带条件的请求时,服务器允许请求访问资源,但未满足条件的情况。304返回时不包含任何响应的主体。(和重定向没什么关系)
  • 305 使用代理
    被请求的资源必须通过指定的代理才能被访问

4XX 客户端响应

  • 400 坏请求
    请求报文中存在语法错误,需要修改后再次发送请求
  • 401 未授权
    发送的请求需要有通过HTTP认证的认证信息。若之前已经进行过一次请求,则比奥是认证失败
    缺乏目标资源要求的身份验证凭证,发送的请求未得到满足。
  • 402 要求付款
    尚未启用
  • 403 禁止
    服务器拒绝了对请求资源的访问
  • 404 未找到
    表明服务器上无法找到请求的资源

5XX 服务器错误

  • 500 内部资源出错
    服务器端在执行请求时发生了错误
  • 501 未执行
    表示请求的方法不被服务器支持,因此无法被处理
    服务器必须支持的方法(即不会返回这个状态码的方法)只有 GET 和 HEAD
  • 502 Bad Gateway
    表示扮演网关或代理角色的服务器,从上游服务器中接收到的响应是无效的
    通常不是客户端能够修复的错误,需要Web服务器或代理服务器进行修复
  • 503 Service Unavailable
    服务器暂时处于超负载或正在进行停机维护,现在无法处理请求
  • 504 Gateway Timeout(网关超时)
    响应来自网关或代理,网关或代理在等待另一台服务器的响应时出现了超时
  • 505 不支持的HTTP版本
    服务器收到的请求使用了它不支持的HTTP协议版本

参考文章:非常详细的HTTP常见状态码


李默
24 声望2 粉丝