Java Network Programming från nybörjare till proffs: HTTP-huvudet som



Nämligen den gemensamma rubrikfältet

1. Anslutning

Det här fältet finns endast i HTTP1.1 avtalet.Den bestämmer klienten och servern för en session, är servern stängde genast ner nätverksanslutningen.Vid fullgörandet av klienten är att använda den mest direkta läsa metoden (readline är samma metod) klient begär webben läsning resurser, omedelbart återgå -1 (readline returnerar null).Det finns två värden för Anslutning: Stäng och Keep-Alive När du använder Anslutning: Stäng när och HTTP1.0 avtalet är densamma när det läses data läsa Metoden returnerar omedelbart, och använda Anslutning:. Keep-Alive, läs metoder i behandlingenNär uppgifterna måste vara blockerad under en tid.Läs uppgifterna efter den tidsgräns, men fortsatte ner utförandet.I den föregående artikeln diskuteras readHttpResponse (... ...) metod genomförandet av den första 011 raderna för att kontrollera roll Connection.Låt oss göra ett experiment med hjälp av HTTP simulator.

(1) mata in följande HTTP simulatorn domännamn:

www.baidu.com

(2) HTTP Simulator HTTP-begäran att skriva in följande information:

GET / HTTP/1.1

Värd: www.baidu.com

(3) dubbel vagnretur (gå in en tom rad), skicka meddelandet med begäran, och som visas i figur 1, det HTTP-svar meddelanderubrikerna:






Figur 1

(4) efter inmatning y eller Y (i displayen http svarshuvudet, omedelbart träda Y eller y), visar innehållet i det svarsmeddelande.Efter displayens innehåll, till ungefär 10 sekunder in i "host: port "-prompten (som i sendHttpRequest () Genomförandet av 004 kodraden att läsa data timeout set).

(5) i "host: port " prompten, tryck enter, ange efternamn används www.baidu.com och 80 portar.Ange följande HTTP-förfrågan:

GET / HTTP/1.1

Värd: www.baidu.com

Anslutning: nära

När du har angett ovan HTTP-begäran, den köra om första steget 3,4.Slutligen visa innehållet i HTTP-svar meddelandet direkt rakt in i "host: port " prompt.Utöver den här metoden, läs första raden i begäran GET / HTTP/1.0. Detta kan inte vänta, avsluta.

Genom att ställa in anslutningen kan du ladda ner Web resurser (t.ex. flertrådade nedladdningsverktyget, webbläsare, osv), koppla omedelbart bort från nätverket, som effektivt kan minska kundens resursförbrukning.

2. Datum

Datumhuvudet fältet beskriver begäran meddelanden och svarsmeddelanden skapas.Detta fält värde är en HTTP-datum typ, måste det vara i GMT (Greenwich) tid är GMT tid GMT minus 8 timmar.Här är ett exempel på fältet Datum:

Datum: tis, 15 Nov 2007 08:12:31 GMT

3. Content-Length

Antalet byte som anges meddelande enhet.POST-metoden i meddelandet med begäran måste använda Content-Length meddelandet med begäran till det angivna antalet byte i företaget innehållet.Som svar på de värden meddelandefältet anges i HTTP-svaret returneras av den aktuella webbsidan resurser, antalet byte.

För det andra, HTTP-begäran rubrikfältnamn

1. Host

Host fältet används för att ange de resurser tillgängliga för kund värd namn och portnummer.Om porten som ska användas när du ansluter till servern är lika med portnummer kan det portnummer utelämnas.Här är ett exempel med hjälp av Host fältet:

Värd: www.sina.com.cn

Detta fält är nödvändiga, om HTTP-begäran inte innehåller det här området, kommer servern tillbaka 400 (Bad Request) svar status.

2. Godkänn

Acceptera rubrikfältet att avgöra kunden kan få mediatyp.Allmänt format är "*/*" eller "typ /". Subtyp "stycket i denna huvud kan skicka flera typer av media, åtskilda av", "separerade.Acceptera om följande är ett exempel:

Acceptera:: image / gif, image / jpg

Om Accept request header fältvärde hjälp av ovanstående genererade serversidan dynamiskt sidor i IMG blir det första huvudet när bilden innehåller GIF-format, om GIF-bild inte existerar, innehåller jpg-format bilder.

3. User-Agent

Detta fält är först används för att ange vad kunden tillgång till servern, om det är IE6 webbläsare, och enheten är installerad.NET 2.0, kommer User-Agent har följande värden:

User-Agent: Mozilla/4.0 (

kompatibla,

MSIE 6.0;

Windows NT 5.2,

SV1, Maxthon,

. NET CLR 1.1.4322;

. NET CLR 2.0.50727;

InfoPath.1; InfoPath.2)

Kontrollera servern kan använda det här fältet versionen av webbläsaren klienten och för att fastställa beroende på hur olika versioner av data som skickas till klienten.

4. Range

Range fält överförs endast via servern delen av den första webbresurser.Detta fält kan användas för att genomföra HTTP-header-funktion.Det finns många hämta verktyg är genom detta område i HTTP-huvudet.Range fält kan ställas i tre olika format rad bytes som ska översändas:

(1) Omfång: byte = 1000-2000

Sändningsräckvidd från 1000 till 2000 byte.

(2) Omfång: byte = 1000 -

Transport Webbresurser efter den första 1000 byte av allt innehåll.

(3) Range byte = 1000

Överför de senaste 1000 bytes.

Tredje, HTTP-svar meddelanderubrik område

1. Accept-Ranges

Detta fält visar om webbservern stöder Range (om att stödja HTTP-funktionalitet), om det stöds, avkastningen Accept-Ranges: bytes, om inte stöd, återvändande Accept-Ranges: inga.

2. Content-Range

Tillbaka till Web resurs angivna byte intervall.Formatet av värdet i detta fält är:

Starta byte ställning - slutet av byte position / webbresurser, det totala antalet byte

Här är ett exempel på att använda Content-Range:

Content-Range :1000-3000 / 5000

Test

Anslut till servern i HTTP-simulatorn files.cnblogs.com, och ange följande HTTP-begäran meddelande:

GET / nokiaguy / HttpSimulator.rar HTTP/1.1

Värd: files.cnblogs.com

Räckvidd: byte = 1000 -

Återvände svarshuvudet visas i figur 2:






Figur 2

Det kan ses från servern efter överlåtelsen funktion files.cnblogs.com stöd brytpunkt.Men också för att kontrollera att Content-Length värdet är det aktuella antalet byte i sessionen passera över, inte webbresurser, det totala antalet byte.Content-Range fältvärden i "/" följt av antalet webbresurser är det totala antalet byte.

3. Läge

Detta fält anger den adress som den nya tillgång till nya webbresurser.När Web resurs ersättning URL och användare inte kan fånga upp några av de gamla till den nya webbadressen, och därför i den gamla användare att komma åt den ursprungliga webbadressen, använda platsen till den nya adressen tillbaka till klienten.Denna adress översättning är helt transparent för användaren.