Respostas:
O campo Cabeçalho da entidade do comprimento do conteúdo indica o tamanho do corpo da entidade, em número decimal de OCTETs, enviado ao destinatário ou, no caso do método HEAD, o tamanho do corpo da entidade que seria enviado se a solicitação foi um GET.
Não importa qual é o tipo de conteúdo.
Extensão no post abaixo .
É o número de bytes de dados no corpo da solicitação ou resposta. O corpo é a parte que vem após a linha em branco abaixo dos cabeçalhos.
O Content-Length
cabeçalho é um número que indica o comprimento exato de bytes do corpo do HTTP. O corpo do HTTP inicia imediatamente após a primeira linha vazia encontrada após a linha de início e os cabeçalhos.
Geralmente, o Content-Length
cabeçalho é usado para HTTP 1.1, para que a parte receptora saiba quando a resposta atual * terminou, para que a conexão possa ser reutilizada para outra solicitação .
* ... ou request, no caso de métodos de request que possuem um corpo, como POST, PUT ou PATCH
Como alternativa, o Content-Length
cabeçalho pode ser omitido e um Transfer-Encoding
cabeçalho em pedaços pode ser usado.
Se os dois Content-Length
e os Transfer-Encoding
cabeçalhos estiverem ausentes, no final da resposta, a conexão deverá ser fechada.
O recurso a seguir é um guia que achei muito útil ao aprender sobre HTTP:
Um octeto é de 8 bits. Comprimento do conteúdo é o número de octetos que o corpo da mensagem representa.
OCTET
aqui tem um significado muito específico, o que significa <qualquer sequência de dados de 8 bits>. Veja a definição em w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2
O campo Cabeçalho da entidade do comprimento do conteúdo indica o tamanho do corpo da entidade, em número decimal de OCTETs, enviado ao destinatário ou, no caso do método HEAD, o tamanho do corpo da entidade que seria enviado se a solicitação foi um GET.
Content-Length = "Content-Length" ":" 1*DIGIT
Um exemplo é
Content-Length: 3495
Os aplicativos DEVEM usar este campo para indicar o tamanho da transferência do corpo da mensagem, a menos que isso seja proibido pelas regras da seção 4.4 .
Qualquer comprimento de conteúdo maior ou igual a zero é um valor válido. A Seção 4.4 descreve como determinar o comprimento de um corpo da mensagem se um Comprimento do Conteúdo não for fornecido.
Observe que o significado desse campo é significativamente diferente da definição correspondente no MIME, onde é um campo opcional usado no tipo de conteúdo "mensagem / corpo externo". No HTTP, ele deve ser enviado sempre que o tamanho da mensagem puder ser determinado antes de ser transferido, a menos que isso seja proibido pelas regras da seção 4.4.
Minha interpretação é que isso significa o comprimento "on the wire", ou seja, o comprimento do conteúdo * codificado "
"Content-length": "3495"
A partir desta página
O uso mais comum do POST, de longe, é enviar dados de formulário HTML para scripts CGI. Nesse caso, o cabeçalho Content-Type: geralmente é application / x-www-form-urlencoded e o cabeçalho Content-Length: fornece o comprimento dos dados do formulário codificado em URL (aqui está uma observação sobre codificação de URL). O script CGI recebe o corpo da mensagem através de STDIN e o decodifica. Aqui está um envio de formulário típico, usando o 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
De acordo com as especificações :
O campo Cabeçalho da entidade do comprimento do conteúdo indica o tamanho do corpo da entidade, em número decimal de OCTETs, enviado ao destinatário ou, no caso do método HEAD, o tamanho do corpo da entidade que seria enviado se a solicitação foi um GET.
Content-Length = "Content-Length" ":" 1*DIGIT
Um exemplo é
Content-Length: 3495
Os aplicativos DEVEM usar este campo para indicar o tamanho da transferência do corpo da mensagem, a menos que isso seja proibido pelas regras da seção 4.4.
Qualquer comprimento de conteúdo maior ou igual a zero é um valor válido. A Seção 4.4 descreve como determinar o comprimento de um corpo da mensagem se um Comprimento do Conteúdo não for fornecido.
Observe que o significado desse campo é significativamente diferente da definição correspondente no MIME, onde é um campo opcional usado no tipo de conteúdo "mensagem / corpo externo". No HTTP, ele deve ser enviado sempre que o tamanho da mensagem puder ser determinado antes de ser transferido, a menos que isso seja proibido pelas regras da seção 4.4.
O campo Cabeçalho da entidade do comprimento do conteúdo indica o tamanho do corpo da entidade, em número decimal de OCTETs, enviado ao destinatário ou, no caso do método HEAD, o tamanho do corpo da entidade que seria enviado se a solicitação foi um GET.
Comprimento do conteúdo = "Comprimento do conteúdo" ":" 1 * DÍGITO
Um exemplo é
Comprimento do conteúdo: 1024
Os aplicativos devem usar este campo para indicar o comprimento da transferência do corpo da mensagem.
No PHP você usaria algo parecido com isto.
header("Content-Length: ".filesize($filename));
No caso de "Tipo de conteúdo: application / x-www-form-urlencoded", os dados codificados são enviados ao agente de processamento designado, para que você possa definir o tamanho ou o tamanho dos dados que serão publicados.
Considere se você possui cabeçalhos como:
content-encoding: gzip
content-length: 52098
content-type: text/javascript; charset=UTF-8
O comprimento do conteúdo é o tamanho do corpo da mensagem compactada , em "octetos" (ou seja, em unidades de 8 bits, que são "bytes" para todos os computadores modernos).
O tamanho do corpo da mensagem real pode ser outra coisa, talvez 150280 bytes.
O número de caracteres pode ser diferente novamente, talvez 150231, porque alguns caracteres unicode usam vários bytes (observe que UTF-8 é uma codificação padrão).
Portanto, números diferentes, dependendo de você se importar com a quantidade de dados transmitidos, com a quantidade de dados retidos ou com quantos símbolos são vistos. Obviamente, não há garantia de que esses cabeçalhos serão fornecidos.