什么是HTTP头中的“Content-Length”字段?
这是什么意思?
- 编码内容string的字节数,在标题中指定编码。
- 内容string的字符数。
特别是在“Content-Type:application / x-www-form-urlencoded”的情况下。
RFC2616
The Content-Length entity-header field indicates the size of the entity-body, in decimal number of OCTETs, sent to the recipient or, in the case of the HEAD method, the size of the entity-body that would have been sent had the request been a GET.
内容types是什么并不重要。
在下面的post扩展。
这是请求或响应正文中的数据字节数。 正文是标题下方的空行之后的部分。
一个八位字节是8位。 内容长度是消息体代表的八位字节数。
Content-Length
头是一个数字,表示HTTP正文的确切字节长度。 HTTP正文在启动行和标题之后find的第一个空行之后立即启动。
通常, Content-Length
头部用于HTTP 1.1,以便接收方知道当前响应*何时完成,因此连接可以被重新用于其他请求 。
* …或请求,对于具有主体的请求方法,例如POST,PUT或PATCH
或者, Content-Length
头可以省略,可以使用分块的Transfer-Encoding
头 。
如果Content-Length
和Transfer-Encoding
标题都丢失,则在响应结束时必须closures连接。
从这里 :
Content-Length实体标题字段表示发送给接收方的实体主体的大小,以十进制数表示的OCTET,或者在HEAD方法的情况下,发送的实体主体的大小该请求已成为GET。
Content-Length = "Content-Length" ":" 1*DIGIT
一个例子是
Content-Length: 3495
应用程序应该使用这个字段来表示消息体的传输长度,除非4.4节中的规则禁止这样做。
任何内容长度大于或等于零是一个有效的值。 4.4节描述了如果没有给出Content-Length,如何确定消息体的长度。
请注意,此字段的含义与MIME中的相应定义有很大不同,它是“message / external-body”内容types内使用的可选字段。 在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
根据规范 :
Content-Length实体标题字段表示发送给接收方的实体主体的大小,以十进制数表示的OCTET,或者在HEAD方法的情况下,发送的实体主体的大小该请求已成为GET。
Content-Length = "Content-Length" ":" 1*DIGIT
一个例子是
Content-Length: 3495
应用程序应该使用这个字段来表示消息体的传输长度,除非4.4节中的规则禁止这样做。
任何内容长度大于或等于零是一个有效的值。 4.4节描述了如果没有给出Content-Length,如何确定消息体的长度。
请注意,此字段的含义与MIME中的相应定义有很大不同,它是“message / external-body”内容types内使用的可选字段。 在HTTP中,只要消息的长度可以在传输之前被确定,它就应该被发送,除非4.4节中的规则禁止。
Content-Length实体标题字段表示发送给接收方的实体主体的大小,以十进制数表示的OCTET,或者在HEAD方法的情况下,发送的实体主体的大小该请求已成为GET。
Content-Length =“Content-Length”“:”1 * DIGIT
一个例子是
内容长度:1024
应用程序应该使用这个字段来表示消息主体的传输长度。
在PHP中,你会使用这样的东西。
header("Content-Length: ".filesize($filename));
在“内容types:应用程序/ x-www-form-urlencoded”的情况下,编码数据被发送到指定的处理代理,因此您可以设置要发布的数据的长度或大小。