Java Network Programming From Novice to Professional: HTTP-Header-Feld



Zunächst werden die gemeinsamen Header-Feld

1. Connection

Dieses Feld existiert nur in der HTTP1.1 Vereinbarung.Er bestimmt den Client und Server für eine Session, wird der Server sofort nach der Netzwerkverbindung geschlossen.Bei der Wahrnehmung des Kunden ist die direkteste Methode read (readLine Verfahren ist das gleiche) Client-Anfragen des Web Lesung Ressourcen, ob sofortige Rückgabe -1 (readLine null zurück) zu verwenden.Es gibt zwei Werte Connection: Close und Keep-Alive Bei Verwendung des Connection: Close, wann und HTTP1.0 Vereinbarung ist die gleiche, wenn Daten gelesen read-Methode kehrt sofort zurück, und verwenden Sie den Anschluss:. Keep-Alive-Zeit, lesen Methoden beim LesenSobald die Daten müssen für einige Zeit gesperrt werden.Lesen Sie die Daten nach dem Timeout, aber weiter unten die Ausführung.Im vorigen Artikel beschrieben readHttpResponse (... ...)-Methode Durchführung der ersten 011 Zeilen zur Überprüfung der Rolle der Connection.Let's do ein Experiment mit dem HTTP-Simulator.

(1) geben Sie die folgenden HTTP-Simulator Domain-Namen:

www.baidu.com

(2) HTTP Simulator HTTP-Anforderung an die folgenden Informationen eingeben:

GET / HTTP/1.1

Host: www.baidu.com

(3) Doppel-Wagenrücklauf (geben Sie eine leere Zeile), senden Sie die Anfrage-Nachricht, und wie in Abbildung 1, die HTTP-Antwort-Header angezeigt:






Abbildung 1

(4) nach Eingang y oder Y (in der Anzeige http-Antwort-Header, sofort in Kraft Y oder y), zeigt den Inhalt der Antwortnachricht.Nach dem Inhalt der Anzeige, bis etwa 10 Sekunden in die "host: port " Eingabeaufforderung (wie in sendHttpRequest ()-Implementierung des 004 Codezeile zu lesen Datensatz Timeout).

(5) in "host: port "-Prompt drücken Sie die Eingabetaste, geben Sie den Nachnamen verwendet www.baidu.com und 80 Ports.Wiederholen Sie die folgenden HTTP-Anfrage:

GET / HTTP/1.1

Host: www.baidu.com

Connection: close

Nach Eingabe der oben HTTP-Anfrage, die Wiederholung der ersten Stufe 3,4.Schließlich wird der Inhalt der Anzeige nach dem HTTP-Response-Nachricht direkt geradeaus in die "host: port "-Prompt.Zusätzlich zu dieser Methode finden Sie in der ersten Zeile der Anfrage GET / HTTP/1.0. Das kann nicht warten, zu beenden.

Durch die Einstellung der Verbindung, können Sie Web-Ressourcen (z. B. Multi-Threaded-Download-Tool, Web-Browser, etc.), ziehen Sie sofort aus dem Netz, die effektiv reduzieren können die Kunden Ressourcenverbrauch.

2. Date

Der Date-Feld beschreibt die Anfrage-Nachrichten und Antwortnachrichten geschaffen werden.Dieses Feld Wert ist ein HTTP-Datum-Typ, es muss in der GMT (Greenwich) Zeit zu sein, ist GMT-Zeit GMT minus 8 Stunden.Hier ist ein Beispiel des Feldes Datum:

Date: Tue, 15 November 2007 08.12.31 GMT

3. "Content-Length

Die Anzahl der Bytes angegeben Nachricht Einheit.POST-Methode in der Anfrage-Nachricht muss die Content-Length-Request-Nachricht an die angegebene Anzahl von Bytes in das Unternehmen Inhalte zu verwenden.Als Reaktion auf die Nachricht Feldwerte in der HTTP-Antwort angegeben zurück durch die aktuelle Web-Ressourcen, die Anzahl von Bytes.

Zweitens HTTP-Request-Header-Feld

1. Host

Host-Feld wird verwendet, um die Ressourcen des Client-Hostnamen und Port-Nummer zugegriffen angeben.Wenn die Port-Nummer zu verwenden, wenn die Verbindung zum Server ist gleich der Port-Nummer, kann die Port-Nummer entfallen.Hier ist ein Beispiel unter Verwendung des Host-Feld:

Host: www.sina.com.cn

Dieses Feld ist erforderlich, wenn die HTTP-Anforderung nicht enthält dieses Feld, wird der Server wieder 400 (Bad Request)-Status.

2. Accept

Accept-Header-Feld zu bestimmen, kann der Kunde den Medientyp zu erhalten.General-Format ist "*/*" oder "Art /" Subtyp. "Sub-Absatz dieses Kopf kann mehrere Medien übergeben, getrennt durch", "getrennt.Akzeptieren Sie, wenn das folgende Beispiel:

Accept: image / gif, image / jpg

Wenn das Akzeptieren Request-Header-Feld Wert mit den oben der Server-Seite dynamisch generierten Seiten in der IMG wird der erste Kopf, wenn das Bild enthält das GIF-Format, wenn das GIF-Bild nicht vorhanden ist, enthält jpg-Format Bilder.

3. User-Agent

Dieses Feld ist zuerst auf, was der Kunde Zugriff auf den Server legen, wenn es IE6-Browser ist, und das Gerät installiert ist.NET 2.0, wird der User-Agent die folgenden Werte:

User-Agent: Mozilla/4.0 (

compatible;

MSIE 6.0;

Windows NT 5.2;

SV1; Maxthon;

. NET CLR 1.1.4322;

. NET CLR 2.0.50727;

InfoPath.1; InfoPath.2)

Überprüfen Sie den Server können dieses Feld Version der Browser-Client zu verwenden und nach den verschiedenen Versionen der Daten an den Client gesendet bestimmen.

4. Range

Range Feld ist nur durch den Server-Teil des ersten Web-Ressourcen übertragen.In diesem Feld kann die Umsetzung HTTP-Header-Funktion.Es gibt viele Download-Tools wird durch dieses Feld im HTTP-Header.Range-Felder können in drei Formaten Reihe von Bytes übertragen werden festgelegt:

(1) Reichweite: Bytes = 1000-2000

Reichweite von 1000 bis 2000 Bytes.

(2) Bereich: Bytes = 1000 -

Transport Webressourcen nach den ersten 1000 Bytes des gesamten Inhalts.

(3) Range Bytes = 1000

Übertragen Sie die letzten 1000 bytes.

Drittens HTTP-Antwort-Header-Feld

1. Accept-Ranges

Dieses Feld zeigt an, ob der Webserver unterstützt Range (ob auf den HTTP-Funktionalität zu unterstützen), wenn unterstützt, die Rückkehr Accept-Ranges: bytes, wenn nicht die Unterstützung, die Rückkehr Accept-Ranges: keine.

2. Content-Range

Zurück zu den Web-Ressource angegebenen Byte-Bereich.Das Format der Wert dieses Feldes ist:

Start Byte-Position - Ende der Byte-Position / Web-Ressourcen, die Gesamtzahl der Bytes

Hier ist ein Beispiel für die Verwendung der Content-Range:

Content-Range :1000-3000 / 5000

Test

Verbindung mit dem Server in den HTTP-Simulator files.cnblogs.com, und geben Sie die folgenden HTTP-Request-Nachricht:

GET / nokiaguy / HttpSimulator.rar HTTP/1.1

Host: files.cnblogs.com

Range: Bytes = 1000 -

Zurückgegangen Response-Header in Abbildung 2 dargestellt:






Abbildung 2

Es kann vom Server nach der Übertragung Funktion files.cnblogs.com Unterstützung Haltepunkt zu sehen.Aber auch zur Überprüfung der Content-Length-Wert ist die aktuelle Anzahl der Bytes in der Sitzung übergehen, nicht die Web-Ressourcen, die Gesamtzahl der Bytes.Die Content-Range Feldwerte in der "/" durch die Zahl der Web-Ressourcen gefolgt ist die Gesamtzahl von Bytes.

3. Lage

Dieses Feld gibt die Adresse an, die einen neuen Zugang zu neuen Web-Ressourcen.Wenn der Web-Ressource Ersatz-URL, und Benutzer können nicht nachholen einige der alten die neue URL, also in den alten Benutzer auf die ursprüngliche URL zugreifen, verwenden Sie den Ort auf die neue URL an den Client zurück.Diese Adresse Übersetzung ist völlig transparent für den Benutzer.