Http 数据压缩 分块传输 范围请求

本文详细介绍了HTTP中数据压缩的常见算法,如gzip、deflate、br,以及分块传输编码的工作原理,包括chunked格式的详细规则。此外,还讨论了范围请求的概念,允许客户端请求文件的特定部分,这对于处理大文件和媒体流非常有用。内容涵盖Accept-Ranges和Range请求头的使用,以及服务器如何响应部分内容。
摘要由CSDN通过智能技术生成

1.首先来看数据压缩

Http传输数据时,会对数据进行压缩,因为有些数据大的有几 G、几十 G 都有可能。

通常浏览器发送请求时会带着“Accept-Econding”头字段,面是浏览器支持的压缩格式列表,例如 gzip、deflate、br 等,这样服务器就可以从中选择一种压缩算法,放进“Content-Encoding”响应头里,再把原数据压缩后发给浏览器。

2.再来看分块传输

分块就是把数据分成一块一块的再发送出去,浏览器收到后再组装起来,这种“化整为零”的思路在 HTTP 协议里就是“chunked”分块传输编码,在响应报文里用头字段“Transfer-Encoding: chunked”来表示,意思是报文里的 body 部分不是一次性发过来的,而是分成了许多的块(chunk)逐个发送。

分块传输也可以用于“流式数据”,例如由数据库动态生成的表单页面,这种情况下 body 数据的长度是未知的,无法在头字段“Content-Length”里给出确切的长度,所以也只能用 chunked 方式分块发送。

“Transfer-Encoding: chunked”和“Content-Length”这两个字段是互斥的,也就是说响应报文里这两个字段不能同时出现,一个响应报文的传输要么是长度已知,要么是长度未知(chunked)&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值