什么是“content - length”;字段在HTTP报头?

这是什么意思?

  1. 头中指定编码的已编码内容字符串的字节数。
  2. 内容字符串的字符数。

特别是在Content-Type: application/x-www-form-urlencoded的情况下。

601851 次浏览

rfc2616

Content-Length entity-header字段表示 entity-body,十进制形式的OCTETs,发送给接收方 HEAD方法的情况,entity-body的大小 如果请求是GET,

内容类型是什么并不重要。

扩展到下面的帖子

它是请求或响应体中数据的字节数。主体是出现在标题下面空行之后的部分。

根据规范:

Content-Length entity-header字段表示发送给接收者的实体体的大小,以OCTETs的十进制数表示,或者在HEAD方法的情况下,表示如果请求是GET,将发送的实体体的大小。

Content-Length    = "Content-Length" ":" 1*DIGIT

一个例子是

Content-Length: 3495

应用程序应该使用这个字段来指示消息体的传输长度,除非4.4节的规则禁止这样做。

任何Content-Length大于或等于0的都是有效值。第4.4节描述了如果没有给出Content-Length,如何确定消息体的长度。

请注意,此字段的含义与MIME中的相应定义有很大不同,在MIME中,它是一个可选字段,用于“message/external-body”;内容类型。在HTTP中,只要消息的长度可以在传输之前确定,它就应该被发送,除非4.4节中的规则禁止这样做。

Content-Length报头是一个数字,表示HTTP正文的确切字节长度。HTTP主体在开始行和报头之后的第一个空行之后立即开始。

通常,HTTP 1.1使用Content-Length报头,以便接收方知道当前的response何时结束,因此连接可用于另一个请求. Content-Length报头用于HTTP 1.1,以便接收方知道当前的response何时结束。

<子> <一口> *……或请求,在请求方法有一个主体的情况下,如POST, PUT或PATCH

或者,Content-Length头可以省略,可以使用分块的Transfer-Encoding

如果Content-LengthTransfer-Encoding头都没有,那么在响应的末尾必须关闭连接。

以下资源是我在学习HTTP时发现的非常有用的指南:

HTTP变得非常简单

这个页面

到目前为止,POST最常见的用法是, 将HTML表单数据提交给CGI 脚本。在这种情况下, Content-Type:通常是头 应用程序/ x-www-form-urlencoded, Content-Length: header给出 url编码表单的长度 data(这里有一个关于url编码的说明)。 CGI脚本接收消息 通过STDIN,并解码它。 这是一个典型的表单提交, 使用后:< / p >
POST /path/script.cgi HTTP/1.0
From: frog@jmarshall.com
User-Agent: HTTPTool/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 32

Content-Length entity-header字段表示发送给接收者的实体体的大小,以OCTETs的十进制数表示,或者在HEAD方法的情况下,表示如果请求是GET,将发送的实体体的大小。

Content-Length = "Content-Length" ":" 1*DIGIT .

一个例子是

内容长度:1024

应用程序应该使用这个字段来指示消息体的传输长度。

在PHP中,你会使用这样的东西。

header("Content-Length: ".filesize($filename));

在“Content-Type: application/x-www-form-urlencoded”的情况下,编码后的数据被发送到指定的处理代理,以便您可以设置将要发布的数据的长度或大小。

一个八位是8位。Content-length是消息体所代表的字节数。

考虑一下你是否有这样的标题:

content-encoding: gzip
content-length: 52098
content-type: text/javascript; charset=UTF-8

内容长度压缩消息体的大小,以“八位”为单位(即以8位为单位,这恰好是所有现代计算机的“字节”)。

实际消息体的大小可以是其他内容,可能是150280字节。

字符的数目可以再次不同,可能是150231个字符,因为一些unicode字符使用多个字节(注意UTF-8是标准编码)。

所以,不同的数字取决于你是否关心有多少数据被传输,或者有多少数据被保存,或者有多少符号被看到。当然,不能保证会提供这些头文件。