Corsi on-line

Disabilitare gli ETags per velocizzare un sito Web

Gli ETags (chiamati anche “HTTP ETag” o entity tag) vengono utilizzati durante l’interscambio di dati tra client e server per stabilire se una porzione delle informazioni trasmesse via protocollo HTTP al browser, e archiviate in cache, corrisponde ad un contenuto presente nel server interrogato; sostanzialmente si tratta di entità appositamente pensate per rendere possibili le richieste condizionali.

HTTP

Nonostante il metodo per la loro generazione non sia associato ad alcuna specifica ufficiale, almeno in teoria gli ETags dovrebbero rendere più efficiente l’impiego della cache al fine di risparmiare risorse ed elevare il livello delle prestazioni in fase di caricamento delle pagine; grazie ad essi il server non dovrebbe essere obbligato ad inviare una richiesta completa nel caso in cui la risorsa desiderata dal client non abbia subito modifiche.

Fin qui nessun problema, se non fosse per il fatto che gli ETags sono stati concepiti per adottare degli attributi in grado di renderli riconoscibili univocamente sulla base dell’hosting che ospita la risorsa interrogata e del relativo Web server (parliamo quindi degli ETags come “identificatori opachi“); ciò significa che il meccanismo di validazione della cache fornito dagli ETags non potrà essere replicato in un server diverso, anche in presenza di un confronto sul medesimo contenuto.

Ora, una buona parte dei siti Web potrebbe essere avvantaggiata dall’abilitazione di queste entità, ma vi sono situazioni, come per esempio quelle che  prevedono architetture basate su cluster di server, per le quali gli ETags potrebbero produrre un rallentamento delle performances a causa dell’inutilità dei confronti effettuati tra dati archiviati in cache e risorse in remoto. A questo proposito è comunque opportuno ricordare che gli ETags non sono obbligatori per gli HTTP headers.

Se si lavora in un ambiente basato sul server engine Apache, sarà possibile disattivare gli ETags tramite l’introduzione delle seguenti istruzioni in un file .htaccess da posizionare nella root del Web server:

# Configure ETags
FileETag none

In Nginx il supporto per gli ETags è disponibile a partire dalla versione 1.3.3 e tali entità sono abilitate di default, per cui la direttiva associata del file di configurazione dovrà essere modificata da on a off:

etag off;
Post correlati
I più letti del mese
Tematiche