这是什么意思?
特别是在Content-Type: application/x-www-form-urlencoded的情况下。
Content-Type: application/x-www-form-urlencoded
rfc2616
Content-Length entity-header字段表示 entity-body,十进制形式的OCTETs,发送给接收方 HEAD方法的情况,entity-body的大小 如果请求是GET,
内容类型是什么并不重要。
扩展到下面的帖子。
它是请求或响应体中数据的字节数。主体是出现在标题下面空行之后的部分。
从这里:
Content-Length entity-header字段 表示实体体的大小, 以十进制数的OCTETs,发送到 的情况下,收件人或 头的方法,大小 发送的实体 如果请求是GET。< / p > Content-Length = "Content-Length" ":" 1*DIGIT 一个例子是 Content-Length: 3495 应用程序应该使用该字段 对象的传输长度 消息体,除非这是 节中的规则禁止 4.4 < / >。< / p > 任何内容长度大于或 等于0是一个有效值。 章节4.4描述了如何确定 消息体的长度 Content-Length没有给出。< / p > 此处需要注意的含义是 明显不同于 对应的MIME定义, 在哪里它是一个可选字段使用 在“消息/外部主体”中 内容类型。在HTTP中,应该是这样 在消息长度允许的任何时候发送 在存在之前,先被决定 转移,除非这是禁止的 .根据4.4节中的规则
Content-Length entity-header字段 表示实体体的大小, 以十进制数的OCTETs,发送到 的情况下,收件人或 头的方法,大小 发送的实体 如果请求是GET。< / p >
Content-Length = "Content-Length" ":" 1*DIGIT
一个例子是
Content-Length: 3495
应用程序应该使用该字段 对象的传输长度 消息体,除非这是 节中的规则禁止 4.4 < / >。< / p > 任何内容长度大于或 等于0是一个有效值。 章节4.4描述了如何确定 消息体的长度 Content-Length没有给出。< / p > 此处需要注意的含义是 明显不同于 对应的MIME定义, 在哪里它是一个可选字段使用 在“消息/外部主体”中 内容类型。在HTTP中,应该是这样 在消息长度允许的任何时候发送 在存在之前,先被决定 转移,除非这是禁止的 .根据4.4节中的规则
任何内容长度大于或 等于0是一个有效值。 章节4.4描述了如何确定 消息体的长度 Content-Length没有给出。< / p >
此处需要注意的含义是 明显不同于 对应的MIME定义, 在哪里它是一个可选字段使用 在“消息/外部主体”中 内容类型。在HTTP中,应该是这样 在消息长度允许的任何时候发送 在存在之前,先被决定 转移,除非这是禁止的
我的解释是,这意味着“导线上”的长度,即“编码”内容的长度
根据规范:
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 entity-header字段表示发送给接收者的实体体的大小,以OCTETs的十进制数表示,或者在HEAD方法的情况下,表示如果请求是GET,将发送的实体体的大小。
应用程序应该使用这个字段来指示消息体的传输长度,除非4.4节的规则禁止这样做。
任何Content-Length大于或等于0的都是有效值。第4.4节描述了如果没有给出Content-Length,如何确定消息体的长度。
请注意,此字段的含义与MIME中的相应定义有很大不同,在MIME中,它是一个可选字段,用于“message/external-body”;内容类型。在HTTP中,只要消息的长度可以在传输之前确定,它就应该被发送,除非4.4节中的规则禁止这样做。
Content-Length报头是一个数字,表示HTTP正文的确切字节长度。HTTP主体在开始行和报头之后的第一个空行之后立即开始。
Content-Length
通常,HTTP 1.1使用Content-Length报头,以便接收方知道当前的response*何时结束,因此连接可用于另一个请求. Content-Length报头用于HTTP 1.1,以便接收方知道当前的response*何时结束。
<子> <一口> *……或请求,在请求方法有一个主体的情况下,如POST, PUT或PATCH
或者,Content-Length头可以省略,可以使用分块的Transfer-Encoding头。
Transfer-Encoding
如果Content-Length和Transfer-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
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 = "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是标准编码)。
所以,不同的数字取决于你是否关心有多少数据被传输,或者有多少数据被保存,或者有多少符号被看到。当然,不能保证会提供这些头文件。