美文网首页
http状态码

http状态码

作者: Zhou_qn | 来源:发表于2020-03-22 12:16 被阅读0次

    参考文章:https://www.cnblogs.com/xflonga/p/9368993.html
    这篇文章写的很详细

    1. 1XX系列 通知

    • 100("Continue")
      这是对http LBYL(Look Before Your Leap) 请求一个可能的响应,此响应表示客户端应重新发起初始请求,并在请求中附上第一次请求时未提供的(可能很大或者包含敏感信息的)表示。客户端这次发送的请求不会被拒绝。
      (当你用LBYL请求来考察服务器是否会接受你的表示时,如果服务器确认会接受你的表示,那么你将获得响应代码100,否则你将获得417。)

    2. 2XX系列 成功

    • 200("OK")
      表示服务器成功执行了客户端所请求的动作
    • 201("Created")
      当服务器依照客户端的请求创建了一个新资源时,发送此响应代码。Location报头应包含指向新创建资源的规范URI。
    • 202("Accepted")
      客户端的请求无法或将不被实时处理。请求稍后会被处理。请求看上去是合法的,但在实际处理它时有出现问题的可能。
    • 204("No Content")
      若服务器拒绝对PUT、POST或者DELETE请求返回任何状态信息或表示,那么通常采用此响应代码。服务器也可以对GET请求返回此响应代码,这表明“客户端请求的资源存在,但其表示是空的”。
      注意与304("Not Modified")的区别。204常常用在Ajax应用里。服务器通过这个响应代码告诉客户端:客户端的输入已被接受,但客户端不应该改变任何UI元素。

    3. 3XX系列 重定向

    • 301("Moved Permanently")
      服务器知道客户端试图访问的是哪个资源,但希望今后的请求中使用那个新的URI。通过这个响应代码来防止由于URL变更而导致老URL失效。
      服务器应当把规范URI放在Location响应报头里。
    • 303("See Other")
      请求已经被处理,但服务器不是直接返回一个响应文档,而是返回一个响应文档的URI。该响应文档可能是一个静态的状态信息,也可能是一个更有趣的资源。对于后一种情况,303是一种令服务器可以“发送一个资源的表示,而不强迫客户端下载其所有数据”的方式。客户端可以向Location报头里的URI发送GET请求,但它不是必须这么做。
    • 304("Not Modified")
      这个响应代码跟204("No Content")类似:响应实体主体都必须为空。但204用于没有主体数据的情况,而304用于有主体数据,但客户端已拥有该数据,没必要重复发送的情况。
    • 307("Temporary Redirect")
      请求还没有被处理,因为所请求的资源不在本地:它在另一个URI处。客户端应该向那个URI重新发送请求。
      • 对于GET请求来说,它只是请求得到一个表示,该响应代码跟303没有区别。当服务器希望把客户端重新定向到一个镜像站点时,可以用307来响应GET请求。
      • 对于POST,PUT及DELETE请求,它们希望服务器执行一些操作,307和303有显著区别。对POST,PUT或者DELETE请求响应303表明:操作已经成功执行,但响应实体将不随本响应一起返回,若客户端想要获取响应实体主体,它需要向另一个URI发送GET请求。而307表明:服务器尚未执行操作,客户端需要向Location报头里的那个URI重新提交整个请求。

    4. 4XX系列 客户端错误

    • 400("Bad Request")
      这是一个通用的客户端错误状态,当其他4XX响应代码不适用时,就采用400。此响应代码通常用于“服务器收到客户端通过PUT或者POST请求提交的表示,表示的格式正确,但服务器不懂它什么意思”的情况。
    • 401("Unauthorized")
      客户端试图对一个受保护的资源进行操作,却又没有提供正确的认证证书。客户端提供了错误的证书,或者根本没有提供证书。
    • 403("Forbidden")
      客户端请求的结构正确,但是服务器不想处理它。这跟证书不正确的情况不同--若证书不正确,应该发送响应代码401。该响应代码常用于一个资源只允许在特定时间段内访问,
      或者允许特定IP地址的用户访问的情况。
    • 404("Not Found")
      404表明服务器无法把客户端请求的URI转换为一个资源。相比之下,410更有用一些。web服务可以通过404响应告诉客户端所请求的URI是空的,然后客户端就可以通过向该URI发送PUT请求来创建一个新资源了。但是404也有可能是用来掩饰403或者401.
    • 405("Method Not Allowd")
      客户端试图使用一个本资源不支持的HTTP方法。例如:一个资源只支持GET方法,但是客户端使用PUT方法访问。
    • 406("Not Acceptable")
      重要程度:中等。
      当客户端对表示有太多要求,以至于服务器无法提供满足要求的表示,服务器可以发送这个响应代码。例如:客户端通过Accept头指定媒体类型为application/json+hic,但是服务器只支持application/json。服务器的另一个选择是:忽略客户端挑剔的要求,返回首选表示,并把响应代码设为200。
    • 410("Gone")
      这个响应代码跟404类似,但它提供的有用信息更多一些。这个响应代码用于服务器知道被请求的URL过去曾指向一个资源,但该资源现在不存在了的情况。服务器不知道该资源的新URL,服务器要是知道该URL的话,它就发送响应代码301
      410和310一样,都有暗示客户端不应该再请求该URL的意思,不同之处在于:410只是指出该资源不存在,但没有给出该资源的新URL。
    • 417("Expectation Failed")
      此响应代码跟100正好相反。当你用LBYL请求来考察服务器是否会接受你的表示时,如果服务器确认会接受你的表示,那么你将获得响应代码100,否则你将获得417。

    5. 5XX系列 服务器错误

    • 500("Internal Server Error")
      这是一个通用的服务器错误响应。对于大多数web框架,如果在执行请求处理代码时遇到了异常,它们就发送此响应代码。
    • 503("Service Unavailable")
      此响应代码表明HTTP服务器正常,只是下层web服务服务不能正常工作。最可能的原因是资源不足:服务器突然收到太多请求,以至于无法全部处理。由于此问题多半由客户端反复发送请求造成,因此HTTP服务器可以选择拒绝接受客户端请求而不是接受它,并发送503响应代码。

    相关文章

      网友评论

          本文标题:http状态码

          本文链接:https://www.haomeiwen.com/subject/xdymyhtx.html