Questo articolo è completamente dedicato alla
tipologia di header che vanno applicati ai messaggi di richiesta. Rispetto ad
HTTP 1.0, essi hanno conosciuto un certo sviluppo, soprattutto nel numero.
Gli header possono essere suddivisi in
quattro sottocategorie:
- header che permettono di esprimere delle preferenze: Accept esprime preferenze su dei particolari formati per i contenuti multimediali; Accept-Charset esprime una preferenza particolare per un set di caratteri; Accept-Encoding è simile ad Accept, ma definito sul contenuto; Accept-Language definisce una preferenza per un particolare linguaggio; TE già visto nella descrizione del transfer coding;
- header che permettono di mandare informazioni con la richiesta: Authorization è utilizzato nel meccanismo di autenticazione; Referer contiene l'URL da cui il client ha preso conoscenza della risorsa coinvolta nella richiesta; User-Agent specifica l'identificativo dell'applicazione che ha generato la richiesta, Proxy-Authorization è utilizzato per l'autenticazione con un proxy; From;
- header che consentono di specificare delle condizioni: If-Modified-Since, If-Match, If-None-Match, If-Unmodified-Since, If-Range;
- header che danno particolari indicazioni al server: Expect è usato per istruire il server su un compito; Host specifica l'host in cui è sita la risorsa richiesta; Max-Forwards è utilizzato insieme a OPTIONS o TRACE e indica che il messaggio di richiesta può attraversare un numero di proxy e intermediari, definito nell'header stesso; Range specifica un certo intervallo di byte richiesti della risorsa a cui si sta tentando di accedere.
Per quanto riguarda la
semantica degli header, vi sono delle variazioni per quanto riguarda l'header
Autorization, che si sono rese necessarie per introdurre in HTTP 1.1 un protocollo di autenticazione meno vulnerabile. Altro header modificato nella semantica è
If-Modified-Since, che in HTTP 1.0 era utilizzabile solo con il metodo
GET, mentre in HTTP 1.1 può essere utilizzato con tutti i metodi.