|
Wiki
UniCrema
Materie per semestre
Materie per anno
Materie per laurea
Help
|
|
HTTP Headers
Torna alla pagina di Sistemi per l'elaborazione delle informazioni
:: HTTP Headers ::
In una comunicazione HTTP tra client e server vengono normalmente inviati alcuni header, sia nei messaggi di richiesta che in quelli di risposta. Vediamo quali sono.
HTTP request
Da considerare che la maggior parte degli header sottostanti sono assolutamente facoltativi.
- Accept: tipo/sottotipo [;q=valore]
Indica i tipi di file accettati dal client, specificandoli nel formato MIME. In particolare, se il client è in grado di accettare tutti i tipi, può scrivere semplicemente */*. Il parametro q è opzionale ed esprime in percentuale (quindi con valori compresi tra 0 e 1) la preferenza da associare ai vari tipi. Esempi: Accept: text/plain image/gif - Accept: text/plain; q=0.5, text/html; q=0.8
- Accept-Charset: charset [;q=valore]
Indica l'insieme di caratteri (charset) che il client può accettare. Il parametro q funziona nello stesso modo visto sopra. Esempio: Accept-Charset: iso-8859-5, unicode-1-1
- Accept-Encoding: encoding-type [;q=valore]
Indica il tipo di compressioni (encoding) che il client può accettare. Esempio: Accept-Encoding: gzip, default
- Accept-Language: lingua [;q=valore]
Indica la lingua che il client può accettare o preferisce ricevere. Esempio: Accept-Language: it, en
- Authorization: credenziali
Quando l'utente si è autenticato e accede a pagine protette, il client con questo header fornisce le credenziali richeste ed evita ulteriori richieste di autenticazione da sottoporre all'utente. Nelle specifiche HTTP/1.0 esiste uno schema di autorizzazione BASIC, in cui i parametri username e password sono passati in questo modo username:password, e quindi codificati in base 64. Esempio: Authorization: BASIC ceravolo:pigiamino
- Connection: opzioni
Indica il tipo di connessione utilizzata dal client. Se è impostata a close, significa che né il client né il server vorranno comunicare ancora dopo questa transazione; viceversa se gli viene dato valore keep-alive. I valori di default sono close per HTTP/1.0 e keep-alive per HTTP/1.1. Esempio: Connection: close - Connection: keep-alive
- Cookie: nome=valore
Indica i valori di eventuali cookie inviati dal server nelle precedenti comunicazioni con il client. Esempio: Cookie: livello=25
- Expect: ???
Indica il particolare tipo di comportamento del server che è stato richiesto dal client. Esempio: ??? (rif: http://tools.ietf.org/html/rfc2616#section-14.20)
- From: mailbox
Indica l'indirizzo e-mail dell'utente che ha generato la richiesta dall'user agent del client. Esempio: From: webmaster@w3.org
- Host: hostname porta
Indica il nome ed il numero di porta del server che il client vuole contattare. Esempio: Host: www.pecorina.com 90
- If-Modified-Since: HTTP-date
Pone una condizione sull'invio della risorsa richiesta al server: se tale richiesta non ha subito alcuna modifica dalla data passata come parametro dell'header, allora non viene ritornata dal server. Cancellare quest'intestazione forzerà il server ad inviare una pagina anche se questa si trova nella cache del browser. Esempio: If-Modified-Since: Mon, 21 Jan 2008 16:50:31 GMT
- Proxy-Authorization: credenziali
Permette al client di identificare sé stesso (o l'utente) presso un proxy che richiede un'autenticazione. Le credenziali contengono le informazioni riguardanti le autorizzazioni dell'utente e dell'user-agent registrate presso il proxy.
- Proxy-Connection: opzioni
Si presume che indichi il tipo di connessione utilizzata dal client. In realtà non è definita nel protocollo ma pare sia un hack introdotto da Netscape. Dovrebbe funzionare come l'header Connection, quindi se è impostata a close significa che né il client né il proxy-server vorranno comunicare ancora dopo questa transazione; viceversa se gli viene dato valore keep-alive.
- Range: parametri
Indica una serie di operazioni che è possibile compiere su gruppetti di byte (byte-range per gli amici). Non tutti i client e i server supportano però tali operazioni. Vediamo attraverso degli esempi alcuni possibili parametri, ipotizzando che la dimensione completa del messaggio sia di 10000 bytes:
- "voglio i primi 1000 bytes"
Range: bytes=0-999
- "voglio gli ultimi 2000 bytes"
Range: bytes=-2000
- "voglio i bytes dal 2000 al 3000 (estremi compresi)"
Range: bytes=2000-3000
- "voglio solo il primo e l'ultimo byte"
Range: bytes=0-0,-1
- Referer: url
Indica la url della pagina web cui si fa riferimento. Esempio: Referer: http://doppioclic.altervista.org/wiki/
- User-agent: nome user agent
Indica il programma client che ha originato la richiesta HTTP (ad esempio, un browser). Esempio: User-Agent: Mozilla 5.0
Torna su
HTTP response
Come per le request, anche in questo caso alcuni header possono essere facoltativi.
- Accept-Ranges: range accettato
Indica il tipo di range supportato dal server per una risorsa. Quello più comune è il range di byte, ma è anche possibile che non ne sia supportato alcuno, e quindi il parametro avrà valore "none". Esempio: Accept-Ranges: bytes - Accept-Ranges: none
- Age: secondi
Indica il tempo stimato da quando è stata generata la risposta sul server, espresso in secondi. Esempio: Age: 2
- Cache-Control: direttive
Influisce sul modo in cui le pagine sono conservate nella cache dell'user-agent del client. Tra le direttive che posso passare come parametro ho: "public" (le risorse vanno conservate), "private" (le risorse non vanne conservate), "no-cache" (sa il cazzo), "no-store" (mah), "max-age" (dà un'indicazione sul tempo di conservazione), bla bla.
- Content-Encoding: encoding-type
Il tipo di codifica fatta sul contenuto del messaggio, inviata per consentire al client di decodificarlo. Esempio: Content-Encoding: gzip
- Content-Language: lingua
Il linguaggio utilizzato. Esempio: Content-Language: it
- Content-Length: lunghezza
La lunghezza della risorsa trasmessa, espressa in bytes. Esempio: Content-Length: 348
- Content-Location: indirizzo
Indica l'indirizzo URI di provenienza dei documenti. Esempio: Content-Location: /index.htm
- Content-Range: range
Nel caso in cui un messaggio venisse trasmesso in parti, indica dove è collocato un particolare messaggio parziali all'interno di quello completo. Esempio: Content-Range: bytes 500-1001/1001
- Content-Type: tipo
Indica i tipi di file inviati dal server, specificandoli nel formato MIME, e l'eventuale charset correlato. Esempio: Content-Type: text/html; charset=utf-8
- Data: data
Indica la data e l'ora in cui è stato inviato il messaggio dal server. Esempio: Date: Tue, 20 Jan 1955 12:01:31 GMT
- ETag: entity tag
Indica il tipo di firma di una pagina (se la pagina cambia, cambia la firma). Esempio: ETag: "spruzzoMerdaDaTuttiIpori"
- Expires: data
Indica la data dopo la quale il file servito è da considerare obsoleto. Va considerata da tutti i meccanismi di cache coinvolti nella richiesta. Esempio: Expires: Tue, 06 Jun 2666 06:60:60 GMT
- Last-Modified: data
Indica la data dell'ultima modifica dell'oggetto richiesto. Esempio: Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT
- Location: indirizzo
Campo utilizzato dai reindirizzatori di URL, per indicare al navigatore il nuovo indirizzo dove andare cercare la pagina. Esempio: Location: http://www.tettone.com ("confermiamo l'esistenza del sito" ndAutori)
- Proxy-Authenticate: ???
Indica lo schema e i parametri di autenticazione applicabili al proxy per la richiesta di una determinata URI. Questo header deve essere obbligatoriamente incluso come parte della risposta 407 (Proxy Authentication Required). Esempio: ??? (rif: http://tools.ietf.org/html/rfc2616#section-14.9)
- Server: nome server
Indica il nome e la versione del web server. Puramente informativo. Esempio: Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)
- Set-cookie: parametri
Ordina all'user-agent del client di conservare le informazioni contenute nei cookies e di rinviarle al server in occasione di un nuovo collegamento. I parametri possono essere di diverso tipo, ad esempio nomi, date, indirizzi, ecc. Esempio: Set-Cookie: ACQUIRENTE=Damiani; OGGETTO=Esame; expires=Tue, 23 Jan 2008 10:00:00 GMT
- WWW-Authenticate: ???
Indica almeno uno schema e/o parametri di autenticazione da applicare per la richiesta di una determinata URI, in caso di messaggio di risposta 401 (Unauthorized, ovvero autenticazione possibile ma fallita o che non può essere fornita). Esempio: ??? (rif: http://tools.ietf.org/html/rfc2616#section-14.47)
Torna su
Torna alla pagina di Sistemi per l'elaborazione delle informazioni
|
|