Générateur d’en-tête Cache-Control
Construisez un en-tête de réponse HTTP Cache-Control correct à partir de simples interrupteurs et d’unités de temps lisibles, directement dans votre navigateur.
Votre en-tête Cache-Control est assemblé localement dans votre navigateur à partir des options que vous choisissez, et rien de ce que vous configurez n’est téléversé ni stocké sur un serveur.
Vous configurez un serveur ? Essayez le Générateur de configuration nginx.
À propos de Générateur d’en-tête Cache-Control
Ce générateur d’en-tête Cache-Control transforme l’ensemble déroutant des directives de mise en cache HTTP en quelques simples interrupteurs. Basculez public ou private, no-store, no-cache, must-revalidate, proxy-revalidate ou immutable, et définissez des durées comme max-age, s-maxage, stale-while-revalidate et stale-if-error à l’aide d’unités humaines telles que les heures, les jours ou les années plutôt qu’en comptant les secondes. À mesure que vous modifiez les options, l’outil compose les directives dans l’ordre canonique, explique en clair exactement ce que fait l’en-tête actuel et signale les combinaisons contradictoires comme no-store avec max-age. Des préréglages couvrent les cas courants : un actif statique immutable d’un an, du HTML à revalider systématiquement, des données privées à ne jamais stocker et une politique répartie entre CDN et navigateur. Copiez l’en-tête brut ou des extraits nginx, Apache et meta HTML prêts à l’emploi. Tout s’exécute sur votre appareil, dans le navigateur.
Fonctionnalités
- Interrupteurs pour public, private, no-store, no-cache, must-revalidate, proxy-revalidate et immutable
- Saisies de temps en unités humaines (des secondes aux années) pour max-age, s-maxage, stale-while-revalidate et stale-if-error
- Compose les directives dans un ordre canonique propre à mesure que vous éditez
- Explication en clair de ce que fait exactement l’en-tête actuel
- Applique les règles d’exclusion mutuelle et avertit des combinaisons contradictoires
- Préréglages en un clic pour les actifs statiques, le HTML à revalider, les données privées et une mise en cache répartie CDN/navigateur
- Extraits prêts à copier pour l’en-tête brut, add_header nginx, Header set Apache et une balise meta HTML
- S’exécute entièrement dans votre navigateur, de sorte que rien de ce que vous configurez ne quitte votre appareil
Comment utiliser Générateur d’en-tête Cache-Control
- Choisissez un préréglage ou partez de zéro et choisissez public ou private.
- Activez les directives dont vous avez besoin, comme no-cache, must-revalidate ou immutable.
- Saisissez les durées comme max-age avec un nombre et une unité (heures, jours, années).
- Lisez la valeur d’en-tête générée et l’explication en clair située en dessous.
- Copiez l’en-tête brut ou l’extrait nginx, Apache ou meta HTML dont vous avez besoin.
Exemple
Entrée
public + immutable + max-age = 1 year
Sortie
Cache-Control: public, max-age=31536000, immutable
La politique classique d’actif statique avec empreinte : mise en cache pour un an et aucune revalidation.
Erreurs courantes et dépannage
- Vous avez défini no-store mais aussi ajouté max-age ou immutable et ils ont disparu. — no-store signifie que rien n’est jamais mis en cache, il l’emporte donc sur toutes les autres directives. Désactivez no-store si vous voulez réellement une réponse mise en cache mais contrôlée.
- immutable semble n’avoir aucun effet. — immutable n’a d’importance que tant qu’une réponse est encore fraîche, associez-le donc à un max-age non nul. Sans max-age, il n’y a aucune fenêtre de fraîcheur à laquelle l’appliquer.
- s-maxage est ignoré par votre CDN lorsque l’en-tête est private. — private interdit aux caches partagés de stocker la réponse, donc s-maxage, qui ne vise que les caches partagés, ne s’applique jamais. Utilisez public si vous voulez qu’un CDN la mette en cache.
- no-cache avec un long max-age se comporte comme si rien n’était mis en cache. — no-cache force la revalidation auprès de l’origine avant chaque réutilisation, ce qui annule de fait la fraîcheur qu’accorde max-age. Retirez l’une des deux selon votre objectif.
Foire aux questions
- Quelle est la différence entre no-cache et no-store ?
- no-store signifie que la réponse ne doit jamais être écrite dans un cache, chaque requête retourne donc à l’origine. no-cache autorise le stockage de la réponse, mais le cache doit la revalider auprès de l’origine avant de la servir à nouveau. no-store consiste à ne conserver aucune copie ; no-cache consiste à toujours vérifier qu’une copie conservée est encore à jour.
- Que fait immutable dans un en-tête Cache-Control ?
- immutable indique au navigateur que la ressource ne changera jamais pendant la durée de son max-age, il peut donc ignorer la revalidation même lorsque l’utilisateur recharge. Il est destiné aux fichiers versionnés ou à empreinte comme app.9f2c.js, où une nouvelle build est publiée sous une nouvelle URL plutôt qu’en écrasant l’ancienne.
- En quoi max-age et s-maxage diffèrent-ils ?
- max-age définit combien de temps la réponse reste fraîche dans n’importe quel cache, y compris le navigateur. s-maxage remplace max-age mais uniquement pour les caches partagés comme les CDN et les proxys. Définir les deux vous permet de mettre en cache une réponse brièvement dans les navigateurs tout en la conservant plus longtemps sur votre CDN.
- Quand faut-il utiliser public plutôt que private ?
- public permet aux caches partagés comme les CDN et les proxys de stocker la réponse en plus du navigateur. private restreint le stockage au navigateur de l’utilisateur, ce qui est le bon choix pour des réponses personnalisées ou authentifiées qui ne doivent pas être servies à un autre utilisateur depuis un cache partagé.
- Que fait stale-while-revalidate ?
- stale-while-revalidate permet à un cache de servir immédiatement une réponse légèrement périmée pendant qu’il récupère une copie fraîche en arrière-plan. Les utilisateurs obtiennent une réponse instantanée et le cache se met à jour pour la requête suivante, ce qui adoucit le moment où une ressource expire.
- Ma configuration est-elle envoyée à un serveur ?
- Non. L’en-tête, l’explication et les extraits sont tous assemblés dans votre navigateur à mesure que vous basculez les options, de sorte que la configuration est traitée localement sur votre appareil et rien n’est téléversé.
Outils associés
Tous les outils ArrayKit