Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用http压缩时的内容长度_Http - Fatal编程技术网

使用http压缩时的内容长度

使用http压缩时的内容长度,http,Http,客户端正在向http服务器发出范围请求0-1023。它更喜欢gzip压缩和 接受编码:gzip;q=1.0,同一性;q=0.5,*;q=0 在请求中 响应头中的内容长度是多少?它将是1024或压缩数据的大小 谢谢,这是1024或压缩大小中较小的一个 说: " [此答案的其余部分与所问的实际问题无关。我将其保留下来,因为有些人认为它很有用。] 关于内容长度,RFC 2616有以下说法(除其他外): 应用程序应使用此字段指示的传输长度 消息正文,除非第节中的规则禁止这样做 4.4 所以我们必须弄清楚

客户端正在向http服务器发出范围请求0-1023。它更喜欢gzip压缩和 接受编码:gzip;q=1.0,同一性;q=0.5,*;q=0 在请求中

响应头中的内容长度是多少?它将是1024或压缩数据的大小


谢谢,

这是1024或压缩大小中较小的一个

说:

" [此答案的其余部分与所问的实际问题无关。我将其保留下来,因为有些人认为它很有用。]

关于内容长度,RFC 2616有以下说法(除其他外):

应用程序应使用此字段指示的传输长度 消息正文,除非第节中的规则禁止这样做 4.4

所以我们必须弄清楚传输长度是多少;(消息长度)说明了传输长度的两个方面:

消息的传输长度是消息正文的长度,如下所示: 它出现在消息中;也就是说,在任何传输编码被删除之后 已应用

如果存在内容长度标题字段(第14.13节),则其 以八位字节为单位的十进制值表示实体长度和长度 传输长度。如果发生以下情况,则不得发送内容长度标题字段 这两种长度不同

好的,我们知道在这种情况下,传输长度、实体长度和内容长度都有相同的值,并且都指“消息体在消息中显示的长度”,因此我们必须确定消息体是什么。关于消息体:

HTTP消息的消息体(如果有)用于承载 与请求或响应关联的实体体。“

那么什么是实体?对于这一点,你必须参考基本上所有的。(它还定义了实体长度。)最重要的是:

实体主体:=内容编码(内容类型(数据))


实体主体的长度(因此,我们根据4.4的内容长度值)是内容编码后的数据长度。

实际内容长度取决于传输编码和数据:如果使用标识,则不应用压缩,内容长度为1024;如果使用gzip,实际内容长度取决于要压缩的数据。

实际上,它将是1024,这是压缩数据的大小

错。我们讨论的是内容编码,而不是传输编码。这将是gzip压缩后内容的前1024字节。您的“错误”。是不正确的。我会接受“不完全”。我已经将剩余的线索添加到内容编码中。它仍然是不正确的。如果您使用内容编码:gzip请求1024字节的资源,您将得到1024字节(gzip)的资源。说得好——我今天没有仔细阅读这个问题,三年前可能不知道他所说的“范围请求”是什么意思。这意味着我们都错了。它将是1024或压缩大小中较小的一个。我发现这个答案很模糊。这是gzip数据的长度还是gzip之前的数据长度?手动gzip时(通过库等)请求头也是正确的