ETag
Un ETag identifica una specifica versione della rappresentazione di una risorsa HTTP e consente letture o modifiche condizionali.
Un entity tag è un validatore HTTP nell’header di risposta ETag. Identifica una versione specifica della rappresentazione inviata. Il valore non deve necessariamente essere un hash del contenuto e il client deve trattarlo come un identificativo opaco, non come un numero di versione ordinabile.
Due richieste condizionali
Una vista di progetto fittizia risponde con ETag: "r7". A un successivo GET con If-None-Match: "r7", il server può restituire 304 senza inviare nuovamente il corpo se la rappresentazione non è cambiata. Se è cambiata, viene trasferita la nuova rappresentazione con il nuovo validatore.
In una modifica, lo stesso identificativo ha un altro ruolo: un aggiornamento con If-Match: "r7" incontra la rappresentazione ora corrente "r8". La precondizione non soddisfatta produce 412 invece di sovrascrivere lo stato più recente con la vecchia modifica. L’applicazione deve gestire il conflitto in modo visibile. Controllo e modifica devono funzionare correttamente insieme sul server; inviare un header non protegge da solo.
If-Match usa un confronto forte. Un validatore debole con il prefisso W/ non soddisfa questo confronto. Lettura della cache e controllo della scrittura usano quindi condizioni diverse. Un ETag non sostituisce neppure il controllo delle autorizzazioni e non decide chi può vedere o modificare i dati.
Fonti
Termini correlati
- Cache del browserLa cache del browser conserva risposte HTTP adatte. Riuso e validazione seguono le regole applicabili.
- Server-Sent EventsSSE trasmette notifiche testuali dal server al client via HTTP, per esempio sull’avanzamento di un lavoro in background.
- Cross-Origin Resource SharingCORS regola l’accesso del browser alle risposte di un’altra origine. Non sostituisce l’autenticazione né il controllo delle autorizzazioni nell’API.
- Electronic Data InterchangeEDI trasferisce documenti aziendali strutturati fra sistemi. Formato, profilo del partner, corrispondenze dei dati e risposte devono essere coerenti.
- Elaborazione in tempo realeL’elaborazione in tempo reale segue un obiettivo di latenza definito. Ora dell’evento, ora di elaborazione e dati tardivi richiedono regole esplicite.
- Elaborazione in batchL’elaborazione in batch tratta insieme un insieme delimitato di dati o lavori in una singola esecuzione.
Articoli sul tema

Il vostro progetto con ASES
Descriveteci il vostro progetto. Vi ricontatteremo con una prima valutazione.
