Antworten:
Das Feld Content-Length-Entity-Header gibt die Größe des Entity-Body in Dezimalzahlen der OCTETs an, die an den Empfänger gesendet wurden, oder im Fall der HEAD-Methode die Größe des Entity-Body, der gesendet worden wäre Die Anfrage war ein GET.
Es spielt keine Rolle, um welchen Inhaltstyp es sich handelt.
Erweiterung am Post unten .
Dies ist die Anzahl der Datenbytes im Hauptteil der Anforderung oder Antwort. Der Körper ist der Teil, der nach der Leerzeile unter den Überschriften steht.
Der Content-Length
Header ist eine Zahl, die die genaue Bytelänge des HTTP-Körpers angibt. Der HTTP-Body beginnt unmittelbar nach der ersten leeren Zeile, die nach der Startzeile und den Headern gefunden wird.
Im Allgemeinen wird der Content-Length
Header für HTTP 1.1 verwendet, damit der Empfänger weiß, wann die aktuelle Antwort * beendet ist, sodass die Verbindung für eine andere Anforderung wiederverwendet werden kann .
* ... oder Anfrage bei Anforderungsmethoden mit einem Textkörper wie POST, PUT oder PATCH
Alternativ kann der Content-Length
Header weggelassen und ein Chunked- Transfer-Encoding
Header verwendet werden.
Wenn sowohl Content-Length
als auch Transfer-Encoding
Header fehlen, muss am Ende der Antwort die Verbindung geschlossen werden.
Die folgende Ressource ist eine Anleitung, die ich beim Erlernen von HTTP als sehr nützlich empfunden habe:
Ein Oktett besteht aus 8 Bits. Die Inhaltslänge ist die Anzahl der Oktette, die der Nachrichtentext darstellt.
OCTET
Hier hat eine sehr spezifische Bedeutung, was <jede 8-Bit-Folge von Daten> bedeutet. Siehe die Definition unter w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2
Das Feld Content-Length-Entity-Header gibt die Größe des Entity-Body in Dezimalzahlen der OCTETs an, die an den Empfänger gesendet wurden, oder im Fall der HEAD-Methode die Größe des Entity-Body, der gesendet worden wäre Die Anfrage war ein GET.
Content-Length = "Content-Length" ":" 1*DIGIT
Ein Beispiel ist
Content-Length: 3495
Anwendungen sollten dieses Feld verwenden, um die Übertragungslänge des Nachrichtentexts anzugeben, es sei denn, dies ist durch die Regeln in Abschnitt 4.4 verboten .
Jede Inhaltslänge größer oder gleich Null ist ein gültiger Wert. In Abschnitt 4.4 wird beschrieben, wie die Länge eines Nachrichtentexts bestimmt wird, wenn keine Inhaltslänge angegeben wird.
Beachten Sie, dass sich die Bedeutung dieses Felds erheblich von der entsprechenden Definition in MIME unterscheidet, wo es sich um ein optionales Feld handelt, das im Inhaltstyp "Nachricht / externer Körper" verwendet wird. In HTTP sollte es gesendet werden, wenn die Länge der Nachricht vor der Übertragung bestimmt werden kann, es sei denn, dies ist durch die Regeln in Abschnitt 4.4 verboten.
Meine Interpretation ist, dass dies die Länge "auf dem Draht" bedeutet, dh die Länge des * codierten "Inhalts
"Content-length": "3495"
Von dieser Seite
POST wird bei weitem am häufigsten verwendet, um HTML-Formulardaten an CGI-Skripte zu senden. In diesem Fall lautet der Header "Content-Type:" normalerweise application / x-www-form-urlencoded, und der Header "Content-Length:" gibt die Länge der URL-codierten Formulardaten an (hier ein Hinweis zur URL-Codierung). Das CGI-Skript empfängt den Nachrichtentext über STDIN und decodiert ihn. Hier ist eine typische Formularübermittlung mit 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
Nach der Spezifikation :
Das Feld Content-Length-Entity-Header gibt die Größe des Entity-Body in Dezimalzahlen der OCTETs an, die an den Empfänger gesendet wurden, oder im Fall der HEAD-Methode die Größe des Entity-Body, der gesendet worden wäre Die Anfrage war ein GET.
Content-Length = "Content-Length" ":" 1*DIGIT
Ein Beispiel ist
Content-Length: 3495
Anwendungen sollten dieses Feld verwenden, um die Übertragungslänge des Nachrichtentexts anzugeben, es sei denn, dies ist durch die Regeln in Abschnitt 4.4 verboten.
Jede Inhaltslänge größer oder gleich Null ist ein gültiger Wert. In Abschnitt 4.4 wird beschrieben, wie die Länge eines Nachrichtentexts bestimmt wird, wenn keine Inhaltslänge angegeben wird.
Beachten Sie, dass sich die Bedeutung dieses Felds erheblich von der entsprechenden Definition in MIME unterscheidet, wo es sich um ein optionales Feld handelt, das im Inhaltstyp "Nachricht / externer Körper" verwendet wird. In HTTP sollte es gesendet werden, wenn die Länge der Nachricht vor der Übertragung bestimmt werden kann, es sei denn, dies ist durch die Regeln in Abschnitt 4.4 verboten.
Das Feld Content-Length-Entity-Header gibt die Größe des Entity-Body in Dezimalzahlen der OCTETs an, die an den Empfänger gesendet wurden, oder im Fall der HEAD-Methode die Größe des Entity-Body, der gesendet worden wäre Die Anfrage war ein GET.
Content-Length = "Content-Length" ":" 1 * DIGIT
Ein Beispiel ist
Inhaltslänge: 1024
Anwendungen MÜSSEN dieses Feld verwenden, um die Übertragungslänge des Nachrichtentexts anzugeben.
In PHP würden Sie so etwas verwenden.
header("Content-Length: ".filesize($filename));
Im Fall von "Content-Type: application / x-www-form-urlencoded" werden die codierten Daten an den angegebenen Verarbeitungsagenten gesendet, damit Sie die Länge oder Größe der Daten festlegen können, die Sie veröffentlichen möchten.
Überlegen Sie, ob Sie Überschriften haben wie:
content-encoding: gzip
content-length: 52098
content-type: text/javascript; charset=UTF-8
Die Inhaltslänge ist die Größe des komprimierten Nachrichtentexts in "Oktetten" (dh in Einheiten von 8 Bits, die zufällig "Bytes" für alle modernen Computer sind).
Die Größe des tatsächlichen Nachrichtentexts kann etwas anderes sein, vielleicht 150280 Bytes.
Die Anzahl der Zeichen kann wieder unterschiedlich sein, möglicherweise 150231 Zeichen, da einige Unicode-Zeichen mehrere Bytes verwenden (Hinweis UTF-8 ist eine Standardcodierung).
Unterschiedliche Zahlen, je nachdem, ob es Ihnen wichtig ist, wie viele Daten übertragen werden, wie viele Daten gespeichert sind oder wie viele Symbole angezeigt werden. Natürlich gibt es keine Garantie dafür, dass diese Header bereitgestellt werden.