什么是HTTP头中的“Content-Length”字段?

这是什么意思?

  1. 编码内容string的字节数,在标题中指定编码。
  2. 内容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-LengthTransfer-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”的情况下,编码数据被发送到指定的处理代理,因此您可以设置要发布的数据的长度或大小。