HTTP & Request Debugging

générateur d’en-tête Cache-Controldistinguer stockage et réutilisation

Analysez un en-tête de réponse ou composez-le dans le formulaire. L’âge courant est une hypothèse pour le calcul.

générateur d’en-tête Cache-Control

Cache-Control de réponse

Les valeurs restent dans ce navigateur. Aucune requête n’est envoyée à l’origine.

En-tête résultant actuel

Navigateur / cache privé

Fraîche dans cet exemple d’âge

max-age : durée de 3600 secondes

Fraîcheur restante : 3600 secondes

Cache partagé / CDN

Fraîche dans cet exemple d’âge

s-maxage : durée de 86400 secondes

Fraîcheur restante : 86400 secondes

Une fois périmée, la réponse doit être validée avant réutilisation selon ces directives.

On suppose une réponse déjà stockée et l’âge saisi ci-dessous. La fraîcheur ne garantit ni stockage ni réutilisation ; les autres en-têtes et règles de plateforme s’appliquent.

Supposez un current_age de 0 à 2147483648. Age seul ne couvre pas tous les délais de transit et de résidence. Cet exemple est statique.

Directives analysées

public

Autorise le stockage partagé si les autres conditions sont remplies.

Ligne 1, colonne 16

max-age=3600

Durée privée et durée partagée en l’absence de s-maxage.

Ligne 1, colonne 24

s-maxage=86400

Remplace max-age pour les caches partagés, pas pour le navigateur.

Ligne 1, colonne 38

3 directives affichées sur 3

Notes sur la politique

Aucun problème détecté dans les directives modélisées. Le déploiement n’est pas vérifié pour autant.

3 directives · 0 notes

Une copie peut être périmée dans le navigateur tout en restant fraîche dans un cache partagé. Ce générateur d’en-tête Cache-Control sépare les deux durées pour comprendre ce décalage avec des valeurs concrètes.

Pour préparer une politique de cache HTTP, vous pouvez analyser une valeur existante et construire une autre valeur dans le formulaire. Les deux entrées restent séparées : la mise en cache se discute sans perdre les extensions inconnues du texte initial.

Pourquoi ce générateur d’en-tête Cache-Control

Garder les indices de diagnostic

Le générateur d’en-tête Cache-Control conserve les doublons et les arguments entre guillemets. Dans private="X-Foo, X-Bar", la virgule appartient à l’argument. Passer au formulaire ne remplace pas l’en-tête examiné par un sous-ensemble de directives reconnues.

Un en-tête se décompose en cartes de directives préservées, à côté de commandes de construction indépendantes.

Comparer deux budgets de fraîcheur

L’exemple utilise max-age=3600 et s-maxage=86400. Avec un âge supposé de 4000 secondes, la copie privée est périmée et le cache partagé dispose encore de 82400 secondes. Cela décrit la fraîcheur, sans promettre une réponse provenant du cache.

Un navigateur et un cache partagé ont des pistes de fraîcheur différentes avec le même repère d’âge.

Trois choix avant de fixer une durée

01

Limiter le texte au bon champ

Collez une valeur seule sur une ligne ou plusieurs lignes Cache-Control:. Un bloc contenant Age ou ETag est refusé. Aucun champ étranger n’est ignoré silencieusement dans une analyse présentée comme complète.

02

Distinguer absence et zéro

Un champ de durée vide omet la directive, tandis que 0 produit explicitement zéro seconde. L’exemple et l’effacement passent par un aperçu de remplacement. Annuler la dernière application restaure les deux entrées, l’âge et le résultat.

03

Modifier l’hypothèse d’âge

Le mode automatique attend 350 ms après la saisie. Désactivez-le pour utiliser le bouton ou Ctrl/Cmd + Enter. Toute modification bloque aussitôt l’export de l’ancien résultat. L’âge est une valeur statique, pas un compte à rebours mesuré.

Des directives à leurs effets

Lire les arguments sans les perdre

Les noms sont insensibles à la casse et sortent en minuscules. Arguments, guillemets, ordre et répétitions restent visibles. Les éléments vides entre virgules sont ignorés ; chaque directive indique sa ligne et sa colonne.

Composer les directives de réponse

Neuf interrupteurs et quatre champs couvrent les réglages courants. max-age et s-maxage, ainsi que les deux extensions stale, acceptent des secondes entières jusqu’à 2147483648. Les choix contradictoires restent affichés avec une explication.

Séparer durée et permission

no-cache ordinaire impose une validation réussie avant réutilisation ; no-store interdit le stockage. Une durée positive ne suffit pas à autoriser tout stockage. s-maxage remplace max-age dans un cache partagé, sans modifier la durée du navigateur.

Expliquer les limites d’interprétation

Les extensions inconnues, restrictions par champ et must-understand nécessitent du contexte. Les doublons connus et arguments invalides empêchent une conclusion numérique. L’affichage se fait par 50 directives ; copie et fichier texte contiennent tout l’en-tête actuel.

Ce qu’un seul en-tête permet de conclure

Un champ de réponse uniquement
Aucune URL n’est interrogée ; ETag, Vary et Expires ne sont pas évalués ensemble. Les directives propres aux requêtes sont conservées avec une note. Les configurations de serveur, imports et traitements par lots sont exclus.
Aucune date réelle d’expiration
Le calcul retranche l’âge supposé de la durée. Il ne corrige ni Date, ni le transit, ni le temps de résidence. Sans durée explicite, Expires ou une heuristique peuvent encore intervenir : l’outil ne conclut pas à une absence de cache.
Aucune certification de plateforme
Les règles CDN, l’authentification, le statut et la clé de cache peuvent changer le résultat. Une liste de notes vide ne valide pas un déploiement. L’outil ne purge aucun cache et ne garantit aucun hit.
Entrées et nombres bornés
La limite est de 16384 unités UTF-16 et 128 directives. Une erreur de syntaxe bloque l’export et indique sa position. Les secondes lues hors plage restent dans le texte sans inférence numérique ; les valeurs générées et l’âge sont limités à 2147483648.
Le périmé ne redevient pas frais
stale-while-revalidate et stale-if-error autorisent certaines réutilisations après la période de fraîcheur. Elles ne sont pas ajoutées à cette période. Leur association à des contraintes de validation est signalée, sans simuler chaque implémentation.

Questions sur le générateur d’en-tête Cache-Control

Comment no-cache et no-store se distinguent-ils ?

no-cache ordinaire autorise le stockage mais exige une validation réussie avant chaque réutilisation. no-store interdit de stocker la réponse. Aucun des deux n’est une commande effaçant toutes les copies déjà présentes.

À quoi sert immutable dans la politique de cache ?

immutable indique que la représentation ne changera pas pendant sa période de fraîcheur. Il évite certaines validations ordinaires, sans créer une durée ni empêcher tout rechargement forcé. Après expiration, les règles habituelles reprennent. Ses arguments sont ignorés et ses répétitions équivalent à une seule occurrence.

Quels caches utilisent max-age ou s-maxage ?

max-age s’applique aux caches privés et aux caches partagés sans s-maxage. Ce dernier définit la durée partagée et impose la validation après expiration. Il n’allonge pas la durée utilisée par le navigateur.

Comment choisir entre public et private ?

public convient aux réponses qui peuvent être partagées entre utilisateurs ; private restreint normalement le stockage à un cache privé. Il faut aussi examiner le contenu et l’authentification. private ne chiffre rien, et sa forme qualifiée par des noms de champs a un sens plus précis.

Que permet stale-while-revalidate après expiration ?

Dans la fenêtre indiquée, une réponse périmée peut être réutilisée pendant une tentative de validation en arrière-plan. Cela dépend des requêtes et du support du cache. L’extension ne garantit pas la livraison d’une ancienne copie et ne prolonge pas sa fraîcheur.

Un problème ?

Vérifier la politique avant sa mise en service

générateur d’en-tête Cache-Control : examinez votre valeur avec un âge supposé adapté, puis comparez les deux caches avant de copier.