Risposte:
Il campo intestazione entità Lunghezza contenuto indica la dimensione del corpo entità, in numero decimale di OCTET, inviata al destinatario o, nel caso del metodo HEAD, la dimensione del corpo entità che sarebbe stata inviata aveva la richiesta è stata OTTENUTA.
Non importa quale sia il tipo di contenuto.
Estensione al post qui sotto .
È il numero di byte di dati nel corpo della richiesta o della risposta. Il corpo è la parte che segue la riga vuota sotto le intestazioni.
L' Content-Length
intestazione è un numero che indica la lunghezza esatta del byte del corpo HTTP. Il corpo HTTP inizia immediatamente dopo la prima riga vuota che si trova dopo la riga iniziale e le intestazioni.
Generalmente l' Content-Length
intestazione viene utilizzata per HTTP 1.1 in modo che la parte ricevente sappia quando la risposta corrente * è terminata, quindi la connessione può essere riutilizzata per un'altra richiesta .
* ... o richiesta, nel caso di metodi di richiesta che hanno un corpo, come POST, PUT o PATCH
In alternativa, l' Content-Length
intestazione può essere omessa e Transfer-Encoding
un'intestazione frammentata può essere utilizzata.
Se mancano entrambi Content-Length
e le Transfer-Encoding
intestazioni, alla fine della risposta la connessione deve essere chiusa.
La seguente risorsa è una guida che ho trovato molto utile quando ho imparato a conoscere HTTP:
Un ottetto è di 8 bit. Content-length è il numero di ottetti che rappresenta il corpo del messaggio.
OCTET
qui ha un significato molto specifico che significa <qualsiasi sequenza di dati a 8 bit>. Vedere la definizione su w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2
Da qui :
Il campo intestazione entità Lunghezza contenuto indica la dimensione del corpo entità, in numero decimale di OCTET, inviata al destinatario o, nel caso del metodo HEAD, la dimensione del corpo entità che sarebbe stata inviata aveva la richiesta è stata OTTENUTA.
Content-Length = "Content-Length" ":" 1*DIGIT
Un esempio è
Content-Length: 3495
Le applicazioni DOVREBBERO utilizzare questo campo per indicare la lunghezza di trasferimento del corpo del messaggio, a meno che ciò non sia proibito dalle regole nella sezione 4.4 .
Qualsiasi lunghezza del contenuto maggiore o uguale a zero è un valore valido. La sezione 4.4 descrive come determinare la lunghezza di un corpo del messaggio se non viene fornita una lunghezza del contenuto.
Si noti che il significato di questo campo è significativamente diverso dalla definizione corrispondente in MIME, dove è un campo opzionale utilizzato nel tipo di contenuto "messaggio / corpo esterno". In HTTP, DOVREBBE essere inviato ogni volta che la lunghezza del messaggio può essere determinata prima del trasferimento, a meno che ciò non sia proibito dalle regole nella sezione 4.4.
La mia interpretazione è che questo significa la lunghezza "sul filo", cioè la lunghezza del contenuto * codificato "
"Content-length": "3495"
L'uso più comune di POST è di gran lunga quello di inviare i dati dei moduli HTML agli script CGI. In questo caso, l'intestazione Content-Type: di solito è application / x-www-form-urlencoded, e l'intestazione Content-Length: fornisce la lunghezza dei dati del modulo con codifica URL (ecco una nota sulla codifica URL). Lo script CGI riceve il corpo del messaggio tramite STDIN e lo decodifica. Ecco una tipica presentazione del modulo, usando 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
Secondo le specifiche :
Il campo intestazione entità Lunghezza contenuto indica la dimensione del corpo entità, in numero decimale di OCTET, inviata al destinatario o, nel caso del metodo HEAD, la dimensione del corpo entità che sarebbe stata inviata aveva la richiesta è stata OTTENUTA.
Content-Length = "Content-Length" ":" 1*DIGIT
Un esempio è
Content-Length: 3495
Le applicazioni DOVREBBERO utilizzare questo campo per indicare la lunghezza di trasferimento del corpo del messaggio, a meno che ciò non sia proibito dalle regole nella sezione 4.4.
Qualsiasi lunghezza del contenuto maggiore o uguale a zero è un valore valido. La sezione 4.4 descrive come determinare la lunghezza di un corpo del messaggio se non viene fornita una lunghezza del contenuto.
Si noti che il significato di questo campo è significativamente diverso dalla definizione corrispondente in MIME, dove è un campo opzionale utilizzato nel tipo di contenuto "messaggio / corpo esterno". In HTTP, DOVREBBE essere inviato ogni volta che la lunghezza del messaggio può essere determinata prima del trasferimento, a meno che ciò non sia proibito dalle regole nella sezione 4.4.
Il campo intestazione entità Lunghezza contenuto indica la dimensione del corpo entità, in numero decimale di OCTET, inviata al destinatario o, nel caso del metodo HEAD, la dimensione del corpo entità che sarebbe stata inviata aveva la richiesta è stata OTTENUTA.
Content-Length = "Content-Length" ":" 1 * DIGIT
Un esempio è
Lunghezza contenuto: 1024
Applicazioni DOVREBBE utilizzare questo campo per indicare la lunghezza di trasferimento del corpo del messaggio.
In PHP useresti qualcosa del genere.
header("Content-Length: ".filesize($filename));
Nel caso di "Tipo di contenuto: application / x-www-form-urlencoded", i dati codificati vengono inviati all'agente di elaborazione designato in modo da poter impostare la lunghezza o la dimensione dei dati che si intende pubblicare.
Considera se hai intestazioni come:
content-encoding: gzip
content-length: 52098
content-type: text/javascript; charset=UTF-8
La lunghezza del contenuto è la dimensione del corpo del messaggio compresso , in "ottetti" (cioè in unità di 8 bit, che risultano essere "byte" per tutti i computer moderni).
La dimensione del corpo del messaggio effettivo può essere qualcos'altro, forse 150280 byte.
Il numero di caratteri può essere nuovamente diverso, forse 150231 caratteri, poiché alcuni caratteri unicode utilizzano più byte (nota che UTF-8 è una codifica standard).
Quindi, numeri diversi a seconda che ti interessi quanti dati vengono trasmessi, quanti dati vengono conservati o quanti simboli vengono visualizzati. Naturalmente, non vi è alcuna garanzia che verranno fornite queste intestazioni.