4.9.3. Caching and Application Semantics (Caching e semantica dell'applicazione)
4.9.3. Caching and Application Semantics (Caching e semantica dell'applicazione)
Durante la progettazione di un'applicazione che utilizza HTTP, è importante considerare come il caching interagisce con la semantica dell'applicazione.
Ad esempio, se un'applicazione definisce una risorsa che rappresenta un elenco di elementi, e gli elementi possono essere aggiunti o rimossi, l'applicazione deve considerare:
-
Per quanto tempo un elenco memorizzato nella cache dovrebbe essere considerato fresco?
-
Cosa succede se un client prende una decisione basata su un elenco memorizzato nella cache che è obsoleto?
-
L'applicazione dovrebbe utilizzare meccanismi di invalidazione della cache per notificare alle cache quando l'elenco cambia?
Le applicazioni DOVREBBERO (SHOULD) progettare le loro rappresentazioni di risorse e strategie di caching per funzionare bene insieme. Ciò potrebbe comportare:
-
Scegliere durate di freschezza appropriate in base alla frequenza con cui le risorse cambiano.
-
Utilizzare richieste condizionali per consentire una convalida efficiente.
-
Fornire meccanismi di invalidazione della cache (ad esempio, utilizzare
Cache-Control: no-cacheper risorse che cambiano frequentemente). -
Progettare risorse in modo che siano naturalmente memorizzabili nella cache (ad esempio, rendere le risorse immutabili quando possibile).