Java Netwerk Programmeren van beginneling tot professional: HTTP header-veld



Eerste, de gemeenschappelijke header veld

1. Connection

Dit veld bestaat alleen in de HTTP1.1 overeenkomst.Het bepaalt de client en server voor een sessie, is de server direct het afsluiten van de netwerkverbinding.Bij de vervulling van de cliënt is het gebruik van de meest directe leesmethode (readline methode is hetzelfde) cliënt verzoeken het web lezen bekostigd, of direct -1 (readline null) terug.Er zijn twee waarden van Connection: Close en Keep-Alive Bij gebruik van de Aansluiting: Sluit wanneer en HTTP1.0 overeenkomst is het hetzelfde, gelezen het lezen van gegevens onmiddellijk methode retourneert, en gebruik maken van de Aansluiting:. Keep-Alive tijd, lees methoden bij het lezenZodra de gegevens moeten worden geblokkeerd voor bepaalde tijd.Lees de gegevens na de time-out, maar bleef beneden de uitvoering.In het vorige artikel besproken readHttpResponse (... ...) methode uitvoering van de eerste 011 lijnen naar de rol van de verbinding te controleren.Laten we een experiment doen met behulp van de HTTP-simulator.

(1) Voer de volgende HTTP-simulator domeinnaam:

www.baidu.com

(2) HTTP Simulator HTTP-verzoek naar de volgende gegevens in te voeren:

GET / HTTP/1.1

Host: www.baidu.com

(3) dubbele harde return (voer een lege regel), stuurt u het bericht met een verzoek, en zoals aangegeven in figuur 1, de HTTP response berichtkoppen:






Figuur 1

(4) na het invoeren y of Y (in het display http response header, onmiddellijk in Y of y), wordt de inhoud van het antwoord bericht.Na de inhoud van de display, tot ongeveer 10 seconden om de "host: poort " prompt (zoals in sendHttpRequest () uitvoering van de 004 lijn van code om gegevens te lezen time-out).

(5) in de "host: poort " prompt, druk op enter, voer de laatste naam die wordt gebruikt www.baidu.com en 80 poorten.Voer de volgende HTTP-verzoek:

GET / HTTP/1.1

Host: www.baidu.com

Verbinding: sluiten

Na het invoeren van de bovenstaande HTTP-verzoek, de re-run de eerste stap 3,4.Ten slotte, de inhoud van het scherm na het HTTP-response-bericht, direct recht in de "host: port " prompt.In aanvulling op deze methode, lees de eerste regel van het verzoek GET / HTTP/1.0. Dit kan niet wachten, af te sluiten.

Door het instellen van de verbinding, kunt u downloaden van Web-middelen (zoals multi-threaded te downloaden tool, webbrowser, etc.) direct de stekker uit het netwerk, die effectief kan verminderen van de klant verbruik.

2. Datum

De datum header veld beschrijft het verzoek berichten en antwoordberichten worden gemaakt.Dit veld waarde is een HTTP-date type, het moet in de GMT (Greenwich) tijd, GMT tijd is GMT min 8 uur.Hier is een voorbeeld van het veld Datum:

Datum: dins de 15 november 2007 08:12:31 GMT

3. Content-Length

Het aantal bytes gespecificeerd bericht entiteit.POST-methode in het verzoek bericht moet gebruik maken van de Content-Length request-bericht om het opgegeven aantal bytes in de entiteit inhoud.In reactie op het bericht veldwaarden vermeld in de HTTP-respons geretourneerd door de huidige Web-middelen, het aantal bytes.

Ten tweede, HTTP request header veld

1. Host

Host veld wordt gebruikt om de middelen benaderd door de opdrachtgever hostnaam en poortnummer opgeven.Als de poort nummer te gebruiken bij het verbinden met de server is gelijk aan het poortnummer, kan het poortnummer worden weggelaten.Hier is een voorbeeld met het veld Host:

Host: www.sina.com.cn

Dit veld nodig is, als het HTTP-verzoek niet op dit gebied, zal de server terug 400 (Bad Request) respons status.

2. Accepteer

Accept header veld om te bepalen kan de klant het mediatype te ontvangen.Algemene formaat is "*/*" of "type /" subtype. "Sub-paragraaf van dit hoofd kan passeren meerdere mediatypen, gescheiden door", "gescheiden.Accepteren als de volgende is een voorbeeld:

Accepteren:: image / jpeg, image / jpg

Als de Accept header verzoek veld waarde met behulp van het bovenstaande is de server-side dynamisch gegenereerde pagina's in de IMG zal de eerste hoofd worden wanneer het beeld bevat het GIF-formaat, als de GIF-afbeelding niet bestaat, bevat jpg-formaat.

3. User-agent

Dit veld wordt eerst gebruikt om wat de klant toegang tot de server, geeft als het IE6 browser, en het apparaat is geïnstalleerd.NET 2.0, zal de User-agent hebben de volgende waarden:

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)

Controleer de server kan dit gebied versie van de browser client te gebruiken, en te bepalen naar gelang van de verschillende versies van de gegevens verstuurd naar de klant.

4. Range

Bereik veld is alleen verzonden via de server deel van de eerste Web-middelen.Dit veld kan worden gebruikt voor de uitvoering HTTP header functie.Er zijn veel download tools is door middel van dit gebied in de HTTP header.Bereik velden kan worden ingesteld in drie formaten reeks bytes te zenden:

(1) Bereik: bytes = 1000-2000

Toezending variërend van 1000 tot 2000 bytes.

(2) Bereik: bytes = 1000 -

Transport Web-middelen na de eerste 1000 bytes van alle content.

(3) Range bytes = 1000

Overdracht van de laatste 1000 bytes.

Derde, HTTP-response-bericht header veld

1. Accept-Ranges

Dit veld geeft aan of de webserver Range ondersteunt (of de HTTP-functionaliteit te ondersteunen), indien ondersteund, de terugkeer Accept-Ranges: bytes, zo niet te ondersteunen, de terugkeer Accept-Ranges: geen.

2. Content-Range

Terug naar het web resource opgegeven byte-bereik.Het formaat van de waarde van dit veld is:

Startbyte positie - het einde van de byte positie / Web-middelen, het totale aantal bytes

Hier is een voorbeeld van het gebruik van de Content-Range:

Content-Range :1000-3000 / 5000

Test

Verbinding met de server in de HTTP-simulator files.cnblogs.com, en voer de volgende HTTP-verzoek bericht:

GET / nokiaguy / HttpSimulator.rar HTTP/1.1

Host: files.cnblogs.com

Bereik: bytes = 1000 -

Terug response header weergegeven in figuur 2:






Figuur 2

Het kan worden gezien van de server naar aanleiding van de transfer functie files.cnblogs.com ondersteuning breekpunt.Maar ook om te controleren of de Content-Length waarde is het huidige aantal bytes in de sessie passeren, niet op het web middelen, het totale aantal bytes.De Content-veld Bereik waarden in de "/" gevolgd door het nummer van de Web-middelen is het totale aantal bytes.

3. Locatie

Dit veld specificeert het adres waarop de nieuwe toegang tot de nieuwe Web-middelen.Als het web resource vervanging URL, en de gebruikers niet kunnen inhalen op sommige van de oude de nieuwe URL; Daarom, in de oude gebruikers van de oorspronkelijke URL toegang, de locatie gebruiken om de nieuwe URL terug naar de klant.Dit adres vertaling is volledig transparant voor de gebruiker.