Java Programmazione di rete dal principiante al professionista: HTTP header campo



In primo luogo, il campo di intestazione comune

1. Connection

In questo campo esiste solo nel contratto di HTTP1.1.Determina il client e il server per una sessione, il server viene arrestato immediatamente la connessione di rete.Nello svolgimento del cliente è di utilizzare il metodo più diretto per leggere (metodo readline è lo stesso) client richiede la lettura di risorse Web, visto che prima di ritorno -1 (null readLine restituisce).Ci sono due valori di connessione: Chiudere e Keep-Alive Quando si utilizza la connessione: Chiudi quando e HTTP1.0 accordo è la stessa, se letta dati letti metodo restituisce immediatamente, e utilizzare la connessione:. Tempo di Keep-Alive, metodi di lettura in letturaUna volta che i dati devono essere bloccate per qualche tempo.Leggere i dati dopo il timeout, ma ha continuato giù l'esecuzione.Nel precedente articolo readHttpResponse discussi (... ...) implementazione del metodo delle prime 011 righe di verificare il ruolo di connessione.Facciamo un esperimento utilizzando il simulatore HTTP.



www.baidu.com

(2) HTTP Simulator richiesta HTTP per inserire le seguenti informazioni:

GET / HTTP/1.1

Host: www.baidu.com

(3) doppio ritorno a capo (inserire una riga vuota), inviare il messaggio di richiesta e, come mostrato nella Figura 1, le intestazioni di messaggio di risposta HTTP:






Figura 1

(4) dopo y ingresso o Y (nell'intestazione di risposta HTTP display, inserire immediatamente Y o Y), viene visualizzato il contenuto del messaggio di risposta.Dopo il contenuto del display, circa 10 secondi per entrare nel "host: porta" prompt (come in sendHttpRequest () esecuzione della linea 004 di codice per leggere i dati di timeout impostato).

(5) in "host: porta", premere Invio, inserire il nome utilizzato per ultimo www.baidu.com e 80 porte.Re-inserire la seguente richiesta HTTP:

GET / HTTP/1.1

Host: www.baidu.com

Connection: close

Dopo aver inserito la richiesta di cui sopra HTTP, il ri-eseguire il primo passo 3,4.Infine, il contenuto della visualizzazione del messaggio di risposta HTTP, direttamente direttamente nel "host: porta" prompt.Oltre a questo metodo, leggere la prima riga della richiesta GET / HTTP/1.0. Questo non può aspettare, uscire.

Impostando la connessione, è possibile scaricare le risorse Web (come strumento di scaricamento multi-threaded, browser Web, ecc), immediatamente disconnettersi dalla rete, che può efficacemente ridurre il consumo di risorse del cliente.

2. Data

Il campo di intestazione Data descrive i messaggi richiesta e messaggi di risposta vengono creati.Questo valore del campo è un tipo HTTP-data, deve essere in (Greenwich) tempo GMT, il tempo è ora GMT GMT meno 8.Ecco un esempio del campo Data:

Date: Tue, 15 Nov 2007 08:12:31 GMT

3. Content-Length

Il numero di byte specificato entità messaggio.metodo POST nel messaggio di richiesta deve utilizzare il messaggio di richiesta Content-Length al numero specificato di byte del contenuto entità.In risposta a valori di campo il messaggio specificato nella risposta HTTP restituita con le risorse Web corrente, il numero di byte.

In secondo luogo, campo di intestazione HTTP richiesta

1. Host

campo Host viene usato per specificare le risorse a cui accede il nome host client e numero di porta.Se il numero di porta da utilizzare per la connessione al server è uguale al numero di porta, il numero di porta può essere omesso.Ecco un esempio utilizzando il campo Host:

Host: www.sina.com.cn

Questo campo è necessaria, se la richiesta HTTP non contiene questo campo, il server restituisce lo stato della risposta 400 (Richiesta non valida).

2. Accept

Accetta campo di intestazione per determinare il cliente può ricevere il tipo di supporto.formato generale è "*/*" o "tipo /" sottotipo ". comma del presente capo può passare più tipi di media, separati da", "separati.Accettare se il seguente è un esempio:

Accept:: image / gif, image / jpg

Se il valore del campo di intestazione Accept richiesta utilizzando il sopra, il server-side generate dinamicamente pagine della IMG sarà il primo capo quando l'immagine contiene il formato gif, se l'immagine gif non esiste, contiene le immagini in formato jpg.

3. User-Agent

Questo campo è il primo usato per specificare quale l'accesso client al server, se è IE6 browser, e l'unità è installata.NET 2.0, User-Agent avrà i seguenti valori:

User-Agent: Mozilla/4.0 (

compatibile;

MSIE 6.0;

Windows NT 5.2;

SV1; Maxthon;

. NET CLR 1.1.4322;

. NET CLR 2.0.50727;

InfoPath.1; InfoPath.2)

Controllare il server è possibile utilizzare questa versione da campo del client browser, e per determinare secondo le diverse versioni dei dati inviati al client.

4. Gamma

Range campo viene trasmesso solo attraverso la parte server delle prime risorse web.Questo campo può essere utilizzato per implementare la funzione header HTTP.Ci sono molti strumenti di download è attraverso questo campo nell'intestazione HTTP.campi Range può essere impostato in tre formati gamma di byte da trasmettere:

(1) Gamma: byte = 1000-2000

Gamma di trasmissione 1000-2000 byte.

(2) Gamma: byte = 1000 -

Trasporto risorse Web, dopo i primi 1000 byte di tutti i contenuti.

(3) Range byte = 1000

Trasferire gli ultimi 1000 bytes.

In terzo luogo, il campo messaggio di risposta HTTP header

1. Accept-Ranges

Questo campo indica se il server Web supporta Range (sia per supportare le funzionalità HTTP), se supportato, il ritorno Accept-Ranges: bytes, se non il sostegno, il ritorno Accept-Ranges: nessuno.

2. Content-Range

Torna alla risorsa Web specificato intervallo di byte.Il formato del valore di questo campo è:

Byte di start posizione - fine la posizione del byte / risorse Web, il numero totale di byte

Ecco un esempio di utilizzo del Content-Range:

Content-Range: 1000-3000 / 5000

Test

Si connette al server in files.cnblogs.com simulatore di HTTP, e digitare il seguente messaggio di richiesta HTTP:

GET / nokiaguy / HttpSimulator.rar HTTP/1.1

Host: files.cnblogs.com

Range: byte = 1000 -

Rinviato intestazione di risposta mostrato nella Figura 2:






Figura 2

Lo si può vedere dal server dopo la funzione di trasferimento files.cnblogs.com punto di interruzione di sostegno.Ma anche per verificare il valore Content-Length è il numero corrente di byte nella sessione passare oltre, non le risorse Web, il numero totale di byte.I valori di campo Content-Range in "/" seguito dal numero di risorse Web è il numero totale di byte.

3. Posizione

Questo campo specifica l'indirizzo su cui il nuovo accesso a nuove risorse web.Quando il Web URL sostituzione delle risorse, e gli utenti non possono recuperare un po 'del vecchio il nuovo URL, quindi, in vecchi utenti di accedere all'URL originale, utilizzare il percorso per il nuovo URL al client.Questa Address Translation è completamente trasparente per l'utente.