4.9.3. Caching and Application Semantics (Mise en cache et sémantique d'application)
4.9.3. Caching and Application Semantics (Mise en cache et sémantique d'application)
Lors de la conception d'une application utilisant HTTP, il est important de considérer comment la mise en cache interagit avec la sémantique de l'application.
Par exemple, si une application définit une ressource qui représente une liste d'éléments, et que des éléments peuvent être ajoutés ou supprimés, l'application doit considérer:
-
Combien de temps une liste mise en cache doit-elle être considérée comme fraîche?
-
Que se passe-t-il si un client prend une décision basée sur une liste mise en cache qui est obsolète?
-
L'application doit-elle utiliser des mécanismes d'invalidation de cache pour notifier les caches lorsque la liste change?
Les applications DEVRAIENT (SHOULD) concevoir leurs représentations de ressources et leurs stratégies de mise en cache pour bien fonctionner ensemble. Cela pourrait impliquer:
-
Choisir des durées de fraîcheur appropriées en fonction de la fréquence de changement des ressources.
-
Utiliser des requêtes conditionnelles pour permettre une validation efficace.
-
Fournir des mécanismes d'invalidation de cache (par exemple, utiliser
Cache-Control: no-cachepour les ressources qui changent fréquemment). -
Concevoir des ressources pour qu'elles soient naturellement cachables (par exemple, rendre les ressources immuables lorsque c'est possible).