《图解HTTP》学习笔记(四):返回结果的HTTP状态码

HTTP状态码负责表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工做。咱们能够经过返回的状态码来判断请求是成功或者失败。git

状态码类型

状态码 类别 缘由短语
1XX Information(信息性状态码) 接收的请求正在处理
2XX Success(成功状态码) 请求正常处理完毕
3XX Redirection(重定向状态码) 须要进行附加的操做以完成请求
4XX Client Error(客户端错误状态码) 服务器没法处理请求
5XX Server Error(服务端错误状态码) 服务器处理请求出错

2XX 成功

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

    • 200.png
  • 204 No COntent 表示客户端请求成功可是服务器返回的内容没有实体的主体内容,也表示不可以返回实体的主体。场景:用在客户端像服务端发送内容,而客户端本身不须要作更新。web

    • 204.png
  • 206 Partial Content 该状态码表示客户端进行了范围请求而且服务器c成功的执行了该GET请求。此时响应报文里面应该包含Content-Range字段来表示范围。浏览器

    • 206.png

3XX 重定向

  • 301 Moved Permanently 永久重定向。该状态码表示当前请求的资源已经被分配了新的URL,之后使用的话,应该访问新的URL。服务器

    • 301.png
  • 302 Found 临时重定向。表名称当前请求的资源已经被分配了新的URL,但愿客户端(本次)使用新的URL来访问。spa

    • 302.png
  • 303 See Other 该状态码表示因为请求对应的资源存在着另外一个URL,应该使用GET方法定向获取请求的资源。303 状态码和 302 Found 状态码有着相同的功能,但 303 状态码明确表示客户端应当采用 GET 方法获取资源,这点与 302 状态码有区别。orm

    • 303.png

      当 30一、30二、303 响应状态码返回时,几乎全部的浏览器都会把
      POST 改为 GET,并删除请求报文内的主体,以后请求会自动再次
      发送。
      30一、302 标准是禁止将 POST 方法改变成 GET 方法的,但实际使
      用时你们都会这么作。资源

  • 304 Not Modified 该状态表示客户端发送附加条件的请求,而此时服务容许了请求,可是不知足条件,才返回该状态码,若是知足就返回200。rem

    附加条件通常指的是:GET方法中请求报文中包含If-Mathc、If-Modified-Since、If-Not-Match等,其中的任一请求首部。get

    • 304.png

4XX 客户端错误

  • 400 Bad Request 该状态码代表,客户端的请求报文中存在语法错误。当错误发生时,客户端须要从新修改请求内容后,从新发送请求。

    • 400.png
  • 401 Unauthorized 该状态码表示发送的请求须要经过HTTP认证(BASIC认证、DIGEST认证)。另外,若是用户已经进行过一次请求,那么返回401则表示认证失败。

    • 401.png
  • 403 Forbidden 该状态码代表客户端请求被服务端拒绝。此时服务端没有必要对拒绝的缘由进行说明,可是若是须要给出,那么就能够在响应实体中加入说明,返回给客户端。

    未得到文件系统的访问受权,访问权限出现某些问题(从未受权的发
    送源 IP 地址试图访问)等列举的状况均可能是发生 403 的缘由。

    • 403.png
  • 404 Not Found 该状态代表服务器上没法定位请求的资源。另外,也能够在服务器拒绝客户端请求但不想说明理由的时候返回该状态码。

    • 404.png

5XX 服务器错误

  • 500 Internal Server Error 该状态代表,服务器在处理请求的时候,服务端内部发生了错误。也多是web应用存在着bug或者临时障碍。

    • 500.png
  • 503 Service Unavailable 该状态代表,服务器正处于超负载和停机维护中,如今没法处理请求。

    • 503.png

状态码和情况的不一致
很多返回的状态码响应都是错误的,可是用户可能察觉不到这点。
好比 Web 应用程序内部发生错误,状态码依然返回 200 OK,这种
状况也常常遇到。

github 欢迎Star,欢迎讨论

相关文章
相关标签/搜索