353 Stimmen

Was bedeutet das Feld "Content-Length" im HTTP-Header?

Was bedeutet das?

  1. Byteanzahl der kodierten Inhaltszeichenfolge mit der im Header angegebenen Kodierung.
  2. Anzahl der Zeichen der Inhaltszeichenfolge.

Insbesondere im Falle von Content-Type: application/x-www-form-urlencoded .

12voto

Theresa Punkte 3315

Von diese Seite

T ist die Übermittlung von HTML-Formulardaten an CGI Skripte. In diesem Fall wird der Content-Type: Header normalerweise application/x-www-form-urlencoded, und die Kopfzeile Content-Length: gibt die Länge der URL-kodierten Formulardaten Daten an (hier ein Hinweis zur URL-Kodierung). Das CGI-Skript empfängt die Nachricht Körper über STDIN und dekodiert ihn. Hier ist eine typische Formularübermittlung, unter Verwendung von 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

12voto

benjimin Punkte 2950

Überlegen Sie, ob Sie Kopfzeilen haben wie:

content-encoding: gzip
content-length: 52098
content-type: text/javascript; charset=UTF-8

En Inhalt-Länge ist die Größe des komprimiert Nachrichtenkörper, in "Oktetten" (d.h. in Einheiten von 8 Bit, die bei allen modernen Computern "Bytes" sind).

En Größe des eigentlichen Nachrichtentextes kann etwas anderes sein, vielleicht 150280 Bytes.

Die Anzahl der Zeichen kann wiederum unterschiedlich sein, vielleicht 150231 Zeichen, da einige Unicode-Zeichen mehrere Bytes verwenden (UTF-8 ist eine Standardkodierung).

Es gibt also unterschiedliche Zahlen, je nachdem, ob Sie sich dafür interessieren, wie viele Daten übertragen werden, wie viele Daten gespeichert werden oder wie viele Symbole gesehen werden. Natürlich gibt es keine Garantie, dass diese Header bereitgestellt werden

9voto

Bozhidar Batsov Punkte 54038

Nach Angaben der spec :

Das Entity-Header-Feld Content-Length gibt die Größe des an den Empfänger gesendeten Entity-Bodys in dezimalen OCTETs an bzw. im Falle der HEAD-Methode die Größe des Entity-Bodys, der gesendet worden wäre, wenn es sich bei der Anfrage um einen GET gehandelt hätte.

Content-Length    = "Content-Length" ":" 1*DIGIT

Ein Beispiel ist

Content-Length: 3495

Anwendungen SOLLTEN dieses Feld zur Angabe der Übertragungslänge des Nachrichtenkörpers verwenden, sofern dies nicht durch die Regeln in Abschnitt 4.4 untersagt ist.

Jede Content-Length, die größer oder gleich Null ist, ist ein gültiger Wert. In Abschnitt 4.4 wird beschrieben, wie die Länge eines Nachrichtentextes bestimmt wird, wenn keine Content-Length angegeben ist.

Beachten Sie, dass sich die Bedeutung dieses Feldes deutlich von der entsprechenden Definition in MIME unterscheidet, wo es ein optionales Feld ist, das innerhalb des Inhaltstyps "message/external-body" verwendet wird. In HTTP SOLLTE es immer dann 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.

6voto

Gaurav Jassal Punkte 892

Das Entity-Header-Feld Content-Length gibt die Größe des an den Empfänger gesendeten Entity-Bodys in dezimalen OCTETs an bzw. im Falle der HEAD-Methode die Größe des Entity-Bodys, der gesendet worden wäre, wenn es sich bei der Anfrage um einen GET gehandelt hätte.

Inhalt-Länge = "Inhalt-Länge" ":" 1*ZIFFER

Ein Beispiel ist

Inhalt-Länge: 1024

Anwendungen SOLLTEN dieses Feld verwenden, um die Übertragungslänge des Nachrichtenkörpers anzugeben.

In PHP würden Sie etwas wie dieses verwenden.

header("Content-Length: ".filesize($filename));

Im Falle von "Content-Type: application/x-www-form-urlencoded" werden die kodierten Daten an den vorgesehenen Verarbeitungsagenten gesendet, so dass Sie die Länge oder Größe der Daten, die Sie veröffentlichen wollen, festlegen können.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X