这是什么意思?
在标头中指定编码的编码内容字符串的字节数。内容字符串的字符数。
特别是在 Content-Type: application/x-www-form-urlencoded
的情况下。
它是请求或响应正文中的数据字节数。正文是标题下方空行之后的部分。
Content-Length entity-header 字段指示发送给接收者的实体主体的大小,以十进制的八进制数表示,或者在 HEAD 方法的情况下,将发送的实体主体的大小具有请求是 GET。
内容类型是什么并不重要。
post below 处的扩展。
Content-Length
标头是一个数字,表示 HTTP 正文的确切字节长度。 HTTP 正文在开始行和标题之后找到的第一个空行之后立即开始。
通常,Content-Length
标头用于 HTTP 1.1,以便接收方知道当前响应* 何时完成,因此 connection can be reused for another request.
...或请求,对于具有主体的请求方法,例如 POST、PUT 或 PATCH
或者,可以省略 Content-Length
标头,并且可以使用分块的 Transfer-Encoding
header。
如果缺少 Content-Length
和 Transfer-Encoding
标头,则在响应结束时必须关闭连接。
以下资源是我在学习 HTTP 时发现非常有用的指南:
一个八位字节是 8 位。内容长度是消息正文表示的八位字节数。
OCTET
这里有一个非常具体的含义,它的意思是<任何 8 位数据序列>。请参阅 w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2 中的定义
Content-Length entity-header 字段指示发送给接收者的实体主体的大小,以十进制的八进制数表示,或者在 HEAD 方法的情况下,将发送的实体主体的大小具有请求是 GET。 Content-Length = "Content-Length" ":" 1*DIGIT 一个例子是 Content-Length: 3495 应用程序应该使用这个字段来指示消息体的传输长度,除非这被第 4.4 节的规则禁止.任何大于或等于零的 Content-Length 都是有效值。第 4.4 节描述了在没有给出 Content-Length 的情况下如何确定消息体的长度。请注意,此字段的含义与 MIME 中的相应定义明显不同,后者是在“消息/外部正文”内容类型中使用的可选字段。在 HTTP 中,只要可以在传输之前确定消息的长度,就应该发送它,除非 4.4 节中的规则禁止这样做。
我的解释是,这意味着“在线”的长度,即*编码的内容的长度
迄今为止,POST 最常见的用途是将 HTML 表单数据提交给 CGI 脚本。在这种情况下,Content-Type: 标头通常是 application/x-www-form-urlencoded,而 Content-Length: 标头给出了 URL 编码的表单数据的长度(这里是关于 URL 编码的注释)。 CGI 脚本通过 STDIN 接收消息体,并对其进行解码。这是一个典型的表单提交,使用 POST: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
根据spec:
Content-Length entity-header 字段指示发送给接收者的实体主体的大小,以十进制的八进制数表示,或者在 HEAD 方法的情况下,将发送的实体主体的大小具有请求是 GET。 Content-Length = "Content-Length" ":" 1*DIGIT 一个例子是 Content-Length: 3495 应用程序应该使用这个字段来指示消息体的传输长度,除非这被第 4.4 节的规则禁止.任何大于或等于零的 Content-Length 都是有效值。第 4.4 节描述了在没有给出 Content-Length 的情况下如何确定消息体的长度。请注意,此字段的含义与 MIME 中的相应定义明显不同,后者是在“消息/外部正文”内容类型中使用的可选字段。在 HTTP 中,只要可以在传输之前确定消息的长度,就应该发送它,除非 4.4 节中的规则禁止这样做。
考虑您是否有以下标题:
content-encoding: gzip
content-length: 52098
content-type: text/javascript; charset=UTF-8
内容长度是压缩消息体的大小,以“八位字节”为单位(即以 8 位为单位,对于所有现代计算机来说恰好是“字节”)。
实际消息体的大小可以是其他大小,可能是 150280 字节。
字符数也可以不同,可能是 150231 个字符,因为一些 unicode 字符使用多个字节(注意 UTF-8 是标准编码)。
因此,不同的数字取决于您是否关心传输了多少数据、保存了多少数据或看到了多少符号。当然,不能保证会提供这些标头。
Content-Length entity-header 字段指示发送给接收者的实体主体的大小,以十进制的八进制数表示,或者在 HEAD 方法的情况下,将发送的实体主体的大小具有请求是 GET。
内容长度 = "内容长度" ":" 1*DIGIT
一个例子是
内容长度:1024
应用程序应该使用这个字段来指示消息体的传输长度。
在 PHP 中,你会使用这样的东西。
header("Content-Length: ".filesize($filename));
在“Content-Type: application/x-www-form-urlencoded”的情况下,编码数据被发送到指定的处理代理,因此您可以设置要发布的数据的长度或大小。