我想判断一个 HTTP 请求一次传输了多少字节的数据
这个时候,我看到了两个,一个是传输大小,一个是 content-length
为什么这两个值不一样?是因为请求压缩了吗?
我传输的是两个 JPG 图片
即便是开了压缩,但是 JPG 应该已经是压无可压了呀?
我想判断一个 HTTP 请求一次传输了多少字节的数据
这个时候,我看到了两个,一个是传输大小,一个是 content-length
为什么这两个值不一样?是因为请求压缩了吗?
我传输的是两个 JPG 图片
即便是开了压缩,但是 JPG 应该已经是压无可压了呀?
6 回答5.4k 阅读✓ 已解决
9 回答9.6k 阅读
4 回答13.5k 阅读✓ 已解决
3 回答10.6k 阅读✓ 已解决
4 回答7.5k 阅读
5 回答8.4k 阅读
2 回答10.5k 阅读✓ 已解决
有时候 Content-Length 的值可能与实际传输的数据量不一致。以下是一些可能导致 Content-Length 和传输数据量不一致的情况:
编码问题:Content-Length 是以字节为单位计算的,而某些字符可能占用多个字节进行编码。例如,在使用 UTF-8 编码时,某些特殊字符可能占用多个字节。如果请求中包含这样的字符,Content-Length 可能不会准确反映请求正文的实际长度。
压缩传输:如果请求正文经过压缩,例如使用 gzip 或 deflate 等压缩算法,那么 Content-Length 将指示压缩前的原始数据长度,而不是压缩后的传输数据长度。因此,在传输期间,数据将以压缩格式进行传输,所以实际传输的字节数将少于 Content-Length 中指定的字节数。
分块传输编码(Chunked Transfer Encoding):分块传输编码是一种在 HTTP 响应中常用的传输机制,可以将响应分割为一系列块,每个块都包含一段数据和其大小的描述。在使用分块传输编码时,Content-Length 将不会被发送,而是使用 Transfer-Encoding 头字段来指示使用了分块编码。因此,Content-Length 不会准确表示实际传输的字节数