• HTTP响应状态码


    导言

    上篇我们说的是HTTP的请求方法,主要介绍的是HTTP/1.1版本的8种基本请求方法。客户端发送请求之后,服务器会做出对应的响应,是请求成功了,还是失败了,如果是失败了,是什么原因导致的呢?这篇我们要说的响应状态码,就包含有成功或某种情况下的失败对应数字码。

    还记得我们在说起始行的时候,状态行中就包含有三个关键信息:协议版本、状态码和原因解释。其中状态码和原因就是我们今天要说的。

    响应状态码

    RFC文档标准中规定状态码是三位数,但也并非简单的从000~999,这样状态码足足有1000个,太多了,不利于应用。其实标准中仅定义了41个状态码,但状态码的定义是开放的,可以自行有效扩展。

    这么多状态码大体分为五类,分别是以1到5开头,下面我们来说下这五类的大体含义:

    1xx

    1xx类是提示信息,表示的是协议处理的中间状态,还有后续操作,这个在实际开发中可能比较少见。

    2xx

    2xx这个是最常见的之一,表示服务端成功响应了客户端的请求,这也是客户端最希望看到的结果。

    200 OK:表示请求一切正常,有正常的返回数据。

    204 Not Content:也是一种正常状态,和200 OK类似,只是响应头中没有body数据。

    ‘206 Partial Content’:是HTTP分块下载和断点续传的基础。它其实也表示请求的正常状态,只是响应的body数据是整块数据的片段。它一般有伴随着头字段Content-Range返回,如:

    Content-Range: bytes 0-99/2000 
    
    • 1

    含义是本次请求共返回了2000个字节中的前100个。

    3xx

    3xx表示的是客户端的请求资源发生了变动,需要通过重定向来找到最新的资源。比较常见的状态码是301和302,它们虽然都是重定向,但也有区别:

    301 Moved Permanently:表示的是永久重定向,资源已经不存在了,以后都需要获取新的资源。

    302 Found:临时性的,可能原资源服务器暂时需要维护。

    4xx

    4xx表示的是客户端发送的请求报文有错误,服务端无法处理请求。算是一类错误码。

    400 Bad Request:是一个笼统的错误码,具体原因不清楚,没有明确返回。

    403 Forbidden:是服务器禁止客户端请求当前资源。

    404 Not Found:这个很常见,表示客户端请求的资源在服务器不存在。

    5xx

    5xx是服务器错误,客户端请求报文没问题,服务器内部出错了。常见状态码有:

    500 Internal Server Error:这也是是错误的通用返回错误码,具体错误未知。

    501 Not Implemented:功能未实现。

    502 Bad Gateway:服务器作为网关或者代理时出现的错误,服务器本身服务正常,但访问的后端服务器发生了错误。

    503 Service Unavailable:表示当前服务器很忙,暂时无法响应请求。

  • 相关阅读:
    6.vue知识点:vue-directive自定义指令
    Rancher集群之间ssh登录问题
    C#的LINQ select查询、where过滤、group分组、join关联
    华为云云服务器云耀L实例评测 | 智能不卡顿:如何实现流畅的业务运行
    十四、Java SPI
    centos脚本获取昨天日期删除指定文件之外的其他文件
    1.4_6 Axure RP 9 for mac 高保真原型图 - 案例5 【旋转的唱片3】进度条_滚动
    【Python小项目之Tkinter应用】随机点名/抽奖工具小优化:实现输入框人数限定与人名显示优化,保证结果人名在窗口内显示,如果内容显示超出则弹出警告窗口
    使用 gitignore 忽略 UserInterfaceState.xcuserstate
    【MySQL】表的增删查改
  • 原文地址:https://blog.csdn.net/web220507/article/details/126182716