Il protocollo HTTP definisce l'header Expire per dare un'indicazione al proxy server o a direttamente al browser su come gestire il caching della risorsa richiesta.
La direttiva che permette il settaggio dell'Expires Header è ExpiresActive la quale è gestita dal modulo mod_expire (non è incluso nella configurazione standard di Apache):
ExpiresActive on
La direttiva può essere specificata sia per i singoli VirtualHost, che per directory o semplicemente per un file ma per far si che venga settato l'expires Header occorre definire anche le seguenti direttive:
ExpiresDefault Direttiva che setta l'expiry time di default per tutti i file:
ExpiresDefault A86400
oppure
ExpiresDefault M86400
La differenza sta nel prefisso A e M, il primo fa si che il tempo venga calcolato da quando il client ha ricevuto la risorsa, il secondo invece fa si che il calcolo dell'expiry time dipenda dalla data di creazione della risorsa. In entrambi i casi i valori numerici sono espressi in secondi.
Occorre sottolineare che l'uso del prefix M non è funzionale in due casi:
- La risorsa richiesta non è un file fisicamente che risiede su un disco, per cui è impossibile dedurre la sua data di crezione.
- Ammettiamo che si abbia configurato expiry time di un giorno (86400 secondi), allo scadere di questo giorno la risorsa in questione non verrà cacheata finchè non si modificherà il suo modification time.
ExpiresByType Direttiva che permette di settare l'expiry time di una risorsa a seconda del MIME type.
ExpiresByType image/gif A2419200
In entrambe le direttive è possibile sostituire i numeri in un formato più verboso, tramite i prefissi access o modification seguiti da plus e dal periodo:
Settaggio dell'expiry time a seconda del MIME type in entrambi i modi
ExpiresByType image/gif A2419200
ExpiresByType image/gif "access plus 1 month"
Settaggio dell'expiry time di default in entrambi i modi
ExpiresDefault M86400
ExpiresDefault "modification plus 1 day"
Gli header HTTP e la loro customizzazione. Gestione degli errori.