Pourquoi le cache compte
Le cache est l'un des leviers les plus rentables pour les APIs en lecture. Il reduit la latence et economise des ressources.
HTTP fournit des mecanismes natifs. Bien utilises, ils donnent des gains gratuits via navigateurs et CDN.
Les bases de Cache-Control
Cache-Control indique qui peut stocker la reponse et combien de temps. `public` autorise les caches partages, `private` limite au client, `max-age` fixe la fraicheur.
Adaptez par endpoint. Toutes les donnees ne se cachent pas de la meme facon.
ETags et requetes conditionnelles
Les ETags permettent de verifier si une ressource a change sans la retelecharger. Le client envoie If-None-Match et le serveur renvoie 304 si rien n'a bouge.
C'est ideal pour des ressources volumineuses ou peu changeantes.
Headers Last-Modified
Last-Modified est plus simple a produire qu'un ETag. Il suffit d'un timestamp fiable.
Moins precis, mais souvent suffisant.
Cache et authentification
Les reponses authentifiees peuvent etre cachees avec `private`. Evitez les caches partages.
Ajoutez `Vary` si la reponse depend de l'auth ou de la langue.
Invalidation
Le cache n'est utile que si l'invalidation est correcte. TTL courts pour le dynamique, longs pour le stable.
Quand les donnees changent, mettez a jour les ETags ou purgez les caches.
Recette pratique
Endpoints lecture : Cache-Control + ETag + 304. Endpoints sensibles : private + TTL court.
Mesurez les hit rates et ajustez. Le cache est un outil de tuning.
