Apache, come ogni web server, quando esaudisce una richiesta invia delle informazioni aggiuntive al client, le quali consitono in:
- HTTP status line che contiene il response code
- Content-Type Header
- Uno o più HTTP Response Header [Opzionale]
- Uno o più HTTP Entity Header [Opzionale]
- Body (il file, pagina html, immagine o altro, richiesto dal client)
Il Content-Type è obbligatorio, mentre gli altri header sono opzionali.
Anche se un header può avere qualsiasi nome, il protocollo HTTP definisce specifici headers con uno specifico significato. Gli header che possono essere presenti nelle risposte di un web server possono essere di due tipi: response header ed entity header.
Response Headers
Aggiungono ulteriori informazioni circa il messaggio come dettagli per il caching ed eventuali warning.
Header che aggiunge informazioni per il caching per un proxy server e del proprio browser:
Cache-Control
Connection
Date
Direttiva generica che viene utilizzata il cache control con i client che utilizzano il protocollo HTTP/1.0
Pragma
Trailer
Transfer-Encoding
Upgrade
Via
Warning
Entity Headers
Allow
Content-Encoding
Content-Language
Content-Lenght
Content-Location
Content-MD5
Content-Range
Content-Type
Expires
Last-Modified
Apache stesso o alcuni moduli, come mod_expires, settano i valori di questi headers, ma a livello di configurazione si ha la possibilità di settare degli header custom tramite la direttiva Headers (valida in ogni contesto) gestita dal modulo mod_headers, il quale non fa parte della configurazione standard di Apache.
Non tutti i vari header sono modificabili tramite questa direttiva poiché vengono inzializzati poco prima dell'inizio della risposta del client, come Servers e Date Headers.
La direttiva Headers ha 4 modalità di impiego:
set Opzione che permette di inizializzare l'Header. Il nome dell'Header non è case sensitive
Headers set Pippo Pluto
L'header Pippo è settato con valore Pluto
append Esegue l'append di un valore ad un header già esistente
Inizializzazione dell'header Pippo e successiva aggiunta del valore Bruno
Headers set Pippo Pluto
Headers append Pippo Bruno
add Alternativa all'opzione di append con la differrenza che la seguente opzione esegue un replace del valore dell'Header.
unset Per eseguire l'unset dei vari headers, compresi quelli settati da altri moduli di Apache.
Headers unset Receipe
Gli header HTTP e la loro customizzazione. Gestione degli errori.