百科狗-知识改变命运!
--

深入理解206状态码

乐乐1年前 (2023-11-21)阅读数 29#技术干货
文章标签状态

一、206状态码什么意思

206状态码表示请求成功,但是服务器只返回资源的一部分,这可以用于断点续传或者多媒体数据的串行传输。在请求HTTP服务的时候,有时候服务器返回的数据可能非常大,而客户端只需要其中一部分,那么服务器就可以使用206状态码来返回客户端请求的部分数据,从而减少响应时间和网络资源的占用。

二、206状态码断点续传

使用206状态码可以实现断点续传的功能。断点续传是指在文件下载或上传过程中,如果因为网络不畅、电脑出现故障或者其它原因中断了,可以利用断点续传技术从已下载或者已上传的部分继续下载或上传,从而减少下载或者上传的时间和带宽成本。

具体的实现方式就是客户端发送一个请求,请求消息头中加入Range字段,指明请求的数据范围。服务器收到请求之后,判断Range字段对应的数据范围,然后将对应的部分数据返回给客户端,客户端在收到数据之后继续下载或者上传。如果在传输的过程中出现中断,可以使用同样的方式来继续断点续传。

三、206是多大码

206状态码是HTTP协议中定义的一个三位数的状态码,对应的范围是200~299,表示的是一般性的请求成功状态,其中的206状态码表示成功返回部分数据,因此可以理解为是一种成功的状态码。

四、206状态码是谁决定的

深入理解206状态码

206状态码是由HTTP标准化组织IETF(Internet Engineering Task Force)制定的HTTP协议定义。而HTTP协议作为一种客户端与服务器之间通信的标准化协议,规范了请求、应答消息的格式、报头、状态码等方面的内容。因此,206状态码的定义权力是在IETF手中。

五、206状态码浏览器不会下载

使用206状态码可以减少网络资源的占用和响应时间的延迟。但是需要注意的是,在处理206状态码的请求时,浏览器是不会像处理200状态码的请求一样将整个资源下载下来,而是只会下载请求的部分资源。因此,如果需要将整个资源下载下来,需要自己编写相应的下载逻辑。

六、206错误码

206状态码是一种成功的状态码,因此不存在所谓的206错误码。如果在使用206状态码的过程中出现错误,那么服务器会根据具体的错误原因返回相应的错误码或者错误信息。

七、302状态码

302状态码表示请求的资源要求从不同的位置获取,通常被用于重定向,即请求成功后自动跳转到另一个地址获取资源。与206状态码不同,302状态码表示请求已经完成,但是需要进一步的操作才能获取到资源。

八、403状态码

403状态码表示服务器拒绝了请求。通常是由于权限问题或者访问限制导致的。与206状态码也是不同的,206状态码表示请求成功,但是只返回了部分数据,而403状态码则表示请求失败。

代码示例:

@app.route('/get_part_data')
def get_part_data():
    file = open('test.mp4', 'rb')
    file_size = os.path.getsize('test.mp4')
    start = 0
    end = file_size - 1
    range_header = request.headers.get('Range')
    if range_header is not None:
        m = re.match('bytes=(\d+)-(\d+)?', range_header)
        if m:
            start = int(m.group(1))
            end = int(m.group(2)) if m.group(2) else end
    length = end - start + 1
    resp = Response(status=206, headers={
        'Accept-Ranges': 'bytes',
        'Content-Range': f'bytes {start}-{end}/{file_size}',
        'Content-Length': str(length)
    })
    resp.set_data(file.read(length))
    file.close()
    return resp

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)