Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Comprendre les politiques de cache
Vous pouvez utiliser une politique de cache pour améliorer le taux de réussite du cache en contrôlant les valeurs (chaînes de requête URL, en-têtes HTTP et cookies) incluses dans la clé de cache. CloudFrontfournit des politiques de cache prédéfinies, appelées politiques gérées, pour les cas d'utilisation courants. Vous pouvez utiliser ces politiques gérées ou créer votre propre politique de cache adaptée à vos besoins. Pour de plus amples informations sur les politiques gérées, veuillez consulter Utiliser des politiques de cache gérées.
Une politique de cache contient les paramètres suivants, qui sont classés en informations de politique, paramètres time-to-live (TTL) et paramètres de clé de cache.
Informations sur les politiques
- Nom
-
Nom permettant d'identifier la politique de cache. Dans la console, vous utilisez le nom pour attacher la politique de cache à un comportement de cache.
- Description
-
Commentaire décrivant la politique de cache. Cette option est facultative, mais elle peut vous aider à identifier l'objectif de la politique de cache.
Paramètres time-to-live (TTL)
Les paramètres de durée de vie (TTL) fonctionnent conjointement avec les en-têtes Cache-Control
et Expires
HTTP (s'ils figurent dans la réponse d'origine) pour déterminer la durée de validité des objets du CloudFront cache.
- Durée de vie minimale
-
Durée minimale, en secondes, pendant laquelle vous souhaitez que les objets restent dans le CloudFront cache avant de CloudFront vérifier auprès de l'origine si l'objet a été mis à jour. Pour plus d’informations, consultez Gérer la durée pendant laquelle le contenu reste dans le cache (expiration).
- Durée de vie (TTL) maximale
-
Durée maximale, en secondes, pendant laquelle les objets restent dans le CloudFront cache avant de CloudFront vérifier auprès de l'origine si l'objet a été mis à jour. CloudFront utilise ce paramètre uniquement lorsque l'origine envoie
Cache-Control
ou met enExpires
en-tête l'objet. Pour plus d’informations, consultez Gérer la durée pendant laquelle le contenu reste dans le cache (expiration). - TTL par défaut
-
Durée par défaut, en secondes, pendant laquelle vous souhaitez que les objets restent dans le CloudFront cache avant de CloudFront vérifier auprès de l'origine si l'objet a été mis à jour. CloudFront utilise la valeur de ce paramètre comme TTL de l'objet uniquement lorsque l'origine n'envoie pas
Cache-Control
ou ne contient pas d'Expires
en-têtes avec l'objet. Pour plus d’informations, consultez Gérer la durée pendant laquelle le contenu reste dans le cache (expiration).
Note
Si les paramètres TTL minimum, TTL maximum et TTL par défaut sont tous définis sur 0, la mise en cache est désactivée. CloudFront
Paramètres de la clé de cache
Les paramètres de la clé de cache spécifient les valeurs figurant dans les demandes du lecteur CloudFront incluses dans la clé de cache. Les valeurs peuvent inclure des chaînes de requête URL, des en-têtes HTTP et des cookies. Les valeurs que vous incluez dans la clé de cache sont automatiquement incluses dans les demandes CloudFront envoyées à l'origine, appelées demandes d'origine. Pour de plus amples informations sur le contrôle des demandes d'origine sans affecter la clé de cache, veuillez consulter Contrôlez les demandes d'origine à l'aide d'une politique.
Les paramètres de clé de cache incluent :
- En-têtes
-
Les en-têtes HTTP dans les demandes du lecteur, CloudFront y compris dans la clé de cache et dans les demandes d'origine. Pour les en-têtes, vous pouvez choisir l'un des paramètres suivants :
-
Aucun – Les en-têtes HTTP dans les demandes de l'utilisateur ne sont pas inclus dans la clé de cache et ne sont pas automatiquement inclus dans les demandes d'origine.
-
Include the following headers (Inclure les en-têtes suivants) – Vous spécifiez quels en-têtes HTTP des demandes de l'utilisateur sont inclus dans la clé de cache et automatiquement inclus dans les demandes d'origine.
Lorsque vous utilisez le paramètre Include the following headers (Inclure les en-têtes suivants), vous spécifiez les en-têtes HTTP par leur nom, et non par leur valeur. Par exemple, considérez l'en-tête HTTP suivant :
Accept-Language: en-US,en;q=0.5
Dans ce cas, vous spécifiez l'en-tête comme
Accept-Language
, pas commeAccept-Language: en-US,en;q=0.5
. Cependant, CloudFront inclut l'en-tête complet, y compris sa valeur, dans la clé de cache et dans les demandes d'origine.Vous pouvez également inclure certains en-têtes générés par CloudFront dans la clé de cache. Pour plus d’informations, consultez Ajouter des en-têtes de CloudFront demande.
-
-
Les cookies contenus dans les demandes du lecteur, CloudFront y compris dans la clé de cache, et dans les demandes d'origine. Pour les cookies, vous pouvez choisir l'un des paramètres suivants :
-
Aucun – Les cookies dans les demandes de l'utilisateur ne sont pas inclus dans la clé de cache et ne sont pas automatiquement inclus dans les demandes d'origine.
-
Tous – Tous les cookies dans les demandes de l'utilisateur sont inclus dans la clé de cache et sont automatiquement inclus dans les demandes d'origine.
-
Include specified cookies (Inclure les cookies spécifiés) – Vous spécifiez quels cookies dans les demandes de l'utilisateur sont inclus dans la clé de cache et automatiquement inclus dans les demandes d'origine.
-
Include all cookies except (Inclure tous les cookies sauf) – Vous spécifiez quels cookies dans les demandes de l'utilisateur ne sont pas inclus dans la clé de cache et ne sont pas automatiquement inclus dans les demandes d'origine. Tous les autres cookies, à l'exception de ceux que vous spécifiez, sont inclus dans la clé de cache et automatiquement inclus dans les demandes d'origine.
Lorsque vous utilisez le paramètre Include specified cookies (Inclure les cookies spécifiés) ou Include all cookies except (Inclure tous les cookies sauf), vous spécifiez les cookies par leur nom, et non par leur valeur. Prenons l'exemple de l'en-tête
Cookie
suivant :Cookie: session_ID=abcd1234
Dans ce cas, vous spécifiez le cookie comme
session_ID
, pas commesession_ID=abcd1234
. Cependant, CloudFront inclut le cookie complet, y compris sa valeur, dans la clé de cache et dans les requêtes d'origine. -
- Chaînes de requête
-
Les chaînes de requête d'URL contenues dans les demandes du lecteur CloudFront incluses dans la clé de cache et dans les demandes d'origine. Pour les chaînes de requête, vous pouvez choisir l'un des paramètres suivants :
-
Aucun – Les chaînes de requête dans les demandes utilisateur ne sont pas incluses dans la clé de cache et ne sont pas automatiquement incluses dans les demandes d'origine.
-
Toutes – Toutes les chaînes de requête dans les demandes de l'utilisateur sont incluses dans la clé de cache et sont également automatiquement incluses dans les demandes d'origine.
-
Include specified query strings (Inclure les chaînes de requête spécifiées) – Vous spécifiez quelles chaînes de requête dans les demandes de l'utilisateur sont incluses dans la clé de cache et automatiquement incluses dans les demandes d'origine.
-
Include all query strings except (Inclure toutes les chaînes de requête sauf) – Vous spécifiez quelles chaînes de requête dans les demandes de l'utilisateur ne sont pas incluses dans la clé de cache et ne sont pas automatiquement incluses dans les demandes d'origine. Toutes les autres chaînes de requête, à l'exception de celles que vous spécifiez, sont incluses dans la clé de cache et automatiquement incluses dans les demandes d'origine.
Lorsque vous utilisez le paramètres Include specified query strings (Inclure les chaînes de requête spécifiées) Include all query strings except (Inclure toutes les chaînes de requête sauf), vous spécifiez les chaînes de requête par leur nom, et non par leur valeur. Prenons l'exemple du chemin d'URL suivant :
/content/stories/example-story.html?split-pages=false
Dans ce cas, vous spécifiez la chaîne de requête comme
split-pages
, pas commesplit-pages=false
. Cependant, CloudFront inclut la chaîne de requête complète, y compris sa valeur, dans la clé de cache et dans les demandes d'origine. -
- Prise en charge de la compression
-
Ces paramètres permettent CloudFront de demander et de mettre en cache des objets compressés aux formats de compression Gzip ou Brotli, lorsque le visualiseur les prend en charge. Ces paramètres permettent également à CloudFront la compression de fonctionner. Les utilisateurs indiquent leur prise en charge de ces formats de compression avec l'en-tête
Accept-Encoding
HTTP.Note
Les navigateurs web Chrome et Firefox prennent en charge la compression Brotli uniquement lorsque la demande est envoyée en HTTPS. Ces navigateurs ne prennent pas en charge Brotli avec les demandes HTTP.
Activez ces paramètres lorsque l'une des conditions suivantes est vraie :
-
Votre origine renvoie des objets compressés Gzip lorsque les utilisateurs les prennent en charge (les demandes contiennent l'en-tête
Accept-Encoding
HTTP avecgzip
comme valeur). Dans ce cas, utilisez le paramètre activé par Gzip (définiEnableAcceptEncodingGzip
surtrue
dans l' CloudFront API AWS CLI, AWS les SDK ou AWS CloudFormation). -
Votre origine renvoie des objets compressés Brotli lorsque les utilisateurs les prennent en charge (les demandes contiennent l'en-tête
Accept-Encoding
HTTP avecbr
comme valeur). Dans ce cas, utilisez le paramètre activé par Brotli (définiEnableAcceptEncodingBrotli
surtrue
dans l' CloudFront API AWS CLI, AWS les SDK ou). AWS CloudFormation -
Le comportement du cache auquel cette politique de cache est attachée est configuré avec CloudFrontla compression. Dans ce cas, vous pouvez activer la mise en cache pour Gzip ou Brotli, ou les deux. Lorsque CloudFront la compression est activée, l'activation de la mise en cache pour les deux formats peut contribuer à réduire les coûts de transfert de données vers Internet.
Note
Si vous activez la mise en cache pour l'un de ces formats de compression ou pour les deux, n'incluez pas l'
Accept-Encoding
en-tête dans une politique de demande d'origine associée au même comportement de cache. CloudFrontinclut toujours cet en-tête dans les demandes d'origine lorsque la mise en cache est activée pour l'un ou l'autre de ces formats. L'inclusionAccept-Encoding
dans une politique de demande d'origine n'a donc aucun effet.Si votre serveur d'origine ne renvoie pas d'objets compressés Gzip ou Brotli, ou si le comportement du cache n'est pas configuré avec la CloudFront compression, n'activez pas la mise en cache pour les objets compressés. Si vous le faites, cela peut entraîner une diminution du taux d'accès au cache.
Ce qui suit explique comment ces paramètres affectent une CloudFront distribution. Tous les scénarios suivants supposent que la demande de l'utilisateur inclut l'en-tête
Accept-Encoding
. Lorsque la demande du visualiseur n'inclut pas l'Accept-Encoding
en-tête, CloudFront ne l'inclut pas dans la clé de cache et ne l'inclut pas dans la demande d'origine correspondante.- Lorsque la mise en cache des objets compressés est activée pour les deux formats de compression
-
Si le visualiseur prend en charge à la fois Gzip et Brotli, c'est-à-dire si les
br
valeursgzip
et figurent toutes deux dans l'Accept-Encoding
en-tête de la demande du visualiseur, effectue les opérations suivantes : CloudFront-
Normalise l'en-tête sur
Accept-Encoding: br,gzip
et inclut l'en-tête normalisé dans la clé de cache. La clé de cache n'inclut pas d'autres valeurs qui se trouvaient dans l'en-têteAccept-Encoding
envoyé par l'utilisateur. -
Si le cache contient un objet compressé Brotli ou Gzip qui correspond à la demande et n'a pas expiré, cet emplacement renvoie l'objet à l'utilisateur.
-
Si le cache de l'emplacement périphérique ne contient aucun objet compressé Brotli ou Gzip correspondant à la demande et n'ayant pas expiré, CloudFront inclut l'en-tête normalisé (
Accept-Encoding: br,gzip
) dans la demande d'origine correspondante. La demande d'origine n'inclut pas les autres valeurs qui se trouvaient dans l'en-têteAccept-Encoding
envoyé par l'utilisateur.
Si le visualiseur prend en charge un format de compression mais pas l'autre (par exemple, s'il s'
gzip
agit d'une valeur dans l'Accept-Encoding
en-tête de la demande du lecteur mais ne l'br
est pas), CloudFront effectue les opérations suivantes :-
Normalise l'en-tête sur
Accept-Encoding: gzip
et inclut l'en-tête normalisé dans la clé de cache. La clé de cache n'inclut pas d'autres valeurs qui se trouvaient dans l'en-têteAccept-Encoding
envoyé par l'utilisateur. -
Si le cache contient un objet compressé Gzip qui correspond à la demande et n'a pas expiré, l'emplacement périphérique renvoie l'objet à l'utilisateur.
-
Si le cache de l'emplacement périphérique ne contient aucun objet compressé Gzip correspondant à la demande et n'ayant pas expiré, CloudFront inclut l'en-tête normalisé (
Accept-Encoding: gzip
) dans la demande d'origine correspondante. La demande d'origine n'inclut pas les autres valeurs qui se trouvaient dans l'en-têteAccept-Encoding
envoyé par l'utilisateur.
Pour comprendre ce qui CloudFront se passe si le lecteur prend en charge Brotli mais pas Gzip, remplacez les deux formats de compression dans l'exemple précédent.
Si le lecteur ne prend pas en charge Brotli ou GZIP, c'est-à-dire que l'
Accept-Encoding
en-tête de la demande du lecteur ne contient pas de valeurs ou ne contientbr
pas de valeurs :gzip
CloudFront-
N'inclut pas l'en-tête
Accept-Encoding
dans la clé de cache. -
Inclut
Accept-Encoding: identity
dans la demande d'origine correspondante. La demande d'origine n'inclut pas les autres valeurs qui se trouvaient dans l'en-têteAccept-Encoding
envoyé par l'utilisateur.
-
- Lorsque la mise en cache des objets compressés est activée pour un format de compression, mais pas pour l'autre
-
Si le visualiseur prend en charge le format pour lequel la mise en cache est activée, par exemple, si la mise en cache des objets compressés est activée pour Gzip et que le visualiseur prend en charge Gzip (
gzip
c'est l'une des valeurs de l'Accept-Encoding
en-tête de la demande du lecteur), procède comme suit : CloudFront-
Normalise l'en-tête sur
Accept-Encoding: gzip
et inclut l'en-tête normalisé dans la clé de cache. -
Si le cache contient un objet compressé Gzip qui correspond à la demande et n'a pas expiré, l'emplacement périphérique renvoie l'objet à l'utilisateur.
-
Si le cache de l'emplacement périphérique ne contient aucun objet compressé Gzip correspondant à la demande et n'ayant pas expiré, CloudFront inclut l'en-tête normalisé (
Accept-Encoding: gzip
) dans la demande d'origine correspondante. La demande d'origine n'inclut pas les autres valeurs qui se trouvaient dans l'en-têteAccept-Encoding
envoyé par l'utilisateur.
Ce comportement est le même lorsque l'utilisateur prend en charge Gzip et Brotli (l'en-tête
Accept-Encoding
de la demande de l'utilisateur inclut les deuxgzip
etbr
comme valeurs), car dans ce scénario, la mise en cache des objets compressés pour Brotli n'est pas activée.Pour comprendre ce qui CloudFront se passe si la mise en cache des objets compressés est activée pour Brotli mais pas pour Gzip, remplacez les deux formats de compression dans l'exemple précédent.
Si le lecteur ne prend pas en charge le format de compression pour lequel la mise en cache est activée (l'
Accept-Encoding
en-tête de la demande du lecteur ne contient pas la valeur correspondant à ce format), CloudFront :-
N'inclut pas l'en-tête
Accept-Encoding
dans la clé de cache. -
Inclut
Accept-Encoding: identity
dans la demande d'origine correspondante. La demande d'origine n'inclut pas les autres valeurs qui se trouvaient dans l'en-têteAccept-Encoding
envoyé par l'utilisateur.
-
- Lorsque la mise en cache des objets compressés est désactivée pour les deux formats de compression
-
Lorsque la mise en cache des objets compressés est désactivée pour les deux formats de compression, CloudFront traite l'
Accept-Encoding
en-tête de la même manière que tout autre en-tête HTTP dans la demande du visualiseur. Par défaut, il n'est pas inclus dans la clé de cache et il n'est pas inclus dans les demandes de l'origine. Vous pouvez l'inclure dans la liste d'autorisation des en-têtes dans une politique de cache ou une politique de demande d'origine comme tout autre en-tête HTTP.
-