Contenu du cache basé sur les cookies - Amazon CloudFront

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.

Contenu du cache basé sur les cookies

Par défaut, les cookies CloudFront ne sont pas pris en compte lors du traitement des demandes et des réponses, ni lors de la mise en cache de vos objets dans des emplacements périphériques. S'il CloudFront reçoit deux demandes identiques à l'exception du contenu de l'Cookieen-tête, il CloudFront traite par défaut les demandes comme identiques et renvoie le même objet pour les deux demandes.

Vous pouvez configurer CloudFront pour transférer à votre origine une partie ou la totalité des cookies contenus dans les requêtes des utilisateurs, et pour mettre en cache des versions distinctes de vos objets en fonction des valeurs des cookies transférés. Dans ce cas, CloudFront utilise une partie ou la totalité des cookies contenus dans les demandes du lecteur, quels que soient ceux pour lesquels le transfert est configuré, afin d'identifier de manière unique un objet dans le cache.

Par exemple, supposons que des demandes pour locations.html contiennent un cookie country ayant la valeur uk ou fr. Lorsque vous configurez CloudFront la mise en cache de vos objets en fonction de la valeur du country cookie, que CloudFront vous transmettez les demandes locations.html à l'origine et que vous incluez le country cookie et sa valeur. Votre origine renvoie locations.html et met en CloudFront cache l'objet une fois pour les requêtes contenant la valeur du country cookie uk et une fois pour les requêtes contenant cette valeur. fr

Important

Amazon S3 et certains HTTP serveurs ne traitent pas les cookies. Ne configurez pas CloudFront pour transférer les cookies vers une origine qui ne traite pas les cookies ou dont la réponse ne varie pas en fonction des cookies. Cela peut CloudFront entraîner le transfert d'un plus grand nombre de demandes vers l'origine pour le même objet, ce qui ralentit les performances et augmente la charge sur l'origine. Si, dans l'exemple précédent, votre origine ne traite pas le country cookie ou renvoie toujours la même version de locations.html to, CloudFront quelle que soit la valeur du country cookie, ne configurez pas CloudFront pour transférer ce cookie.

À l'inverse, si votre origine personnalisée dépend d'un cookie en particulier ou envoie des réponses différentes en fonction d'un cookie, assurez-vous de configurer le transfert de ce cookie CloudFront vers l'origine. Dans le cas contraire, CloudFront supprimez le cookie avant de transmettre la demande à votre source.

Pour configurer la transmission des cookies, vous mettez à jour le comportement du cache de votre distribution. Pour de plus amples informations sur les comportements de cache, consultez Paramètres de comportement du cache, en particulier les sections Réacheminer les cookies et Cookies de la liste d’autorisation.

Vous pouvez configurer chaque comportement de cache pour effectuer l'une des opérations suivantes :

  • Transférer tous les cookies vers votre source : CloudFront inclut tous les cookies envoyés par le spectateur lorsqu'il transmet des demandes à l'origine. Lorsque votre origine renvoie une réponse, elle la met en CloudFront cache en utilisant les noms et les valeurs des cookies figurant dans la demande du lecteur. Si la réponse d'origine inclut Set-Cookie des en-têtes, elle les CloudFront renvoie au visualiseur avec l'objet demandé. CloudFront met également en cache Set-Cookie les en-têtes avec l'objet renvoyé par l'origine et envoie ces Set-Cookie en-têtes aux spectateurs à chaque accès au cache.

  • Transférer un ensemble de cookies que vous spécifiez : CloudFront supprime tous les cookies envoyés par le spectateur qui ne figurent pas sur la liste d'autorisation avant de transmettre une demande à l'origine. CloudFront met en cache la réponse en utilisant les noms et valeurs des cookies répertoriés dans la demande du visualiseur. Si la réponse d'origine inclut Set-Cookie des en-têtes, elle les CloudFront renvoie au visualiseur avec l'objet demandé. CloudFront met également en cache Set-Cookie les en-têtes avec l'objet renvoyé par l'origine et envoie ces Set-Cookie en-têtes aux spectateurs à chaque accès au cache.

    Pour plus d'informations sur la spécification de caractères génériques dans des noms des cookies, consultez Cookies de la liste d’autorisation.

    Pour déterminer le quota actuel concernant le nombre de noms de cookies que vous pouvez transférer pour chaque comportement de cache ou pour demander un quota supérieur, consultez la section Quotas sur les chaînes de requêtes (paramètres de cache hérités).

  • Ne transférez pas les cookies vers votre source : CloudFront ne met pas en cache vos objets en fonction du cookie envoyé par le spectateur. En outre, CloudFront supprime les cookies avant de transférer les demandes à votre source et supprime les Set-Cookie en-têtes des réponses avant de renvoyer les réponses à vos spectateurs. Comme il ne s'agit pas d'une manière optimale d'utiliser vos ressources d'origine, lorsque vous sélectionnez ce comportement de cache, vous devez vous assurer que votre origine n'inclut pas de cookies dans les réponses d'origine par défaut.

Remarque à propos de la spécification des cookies que vous ne souhaitez pas transmettre :

Journaux d'accès

Si vous configurez CloudFront pour enregistrer les demandes et pour enregistrer les cookies, CloudFront enregistre tous les cookies et tous les attributs des cookies, même si vous configurez pour CloudFront ne pas transférer les cookies vers votre origine ou si vous configurez CloudFront pour ne transférer que des cookies spécifiques. Pour plus d'informations sur la CloudFront journalisation, consultezConfiguration et utilisation de journaux standard (journaux d'accès).

Sensibilité à la casse

Les noms et valeurs de cookie sont sensibles à la casse. Par exemple, s'il CloudFront est configuré pour transférer tous les cookies et que deux demandes d'affichage pour le même objet contiennent des cookies identiques, sauf majuscules, CloudFront met l'objet en cache deux fois.

CloudFront trie les biscuits

S'il CloudFront est configuré pour transférer les cookies (tous ou un sous-ensemble), CloudFront trie les cookies dans l'ordre naturel par nom de cookie avant de transmettre la demande à votre origine.

Note

Les noms de cookies commençant par le $ caractère ne sont pas pris en charge. CloudFront supprimera le cookie avant de transmettre la demande à l'origine. Vous pouvez supprimer le $ caractère ou en spécifier un autre au début du nom du cookie.

If-Modified-Since et If-None-Match

If-Modified-Sinceet les demandes If-None-Match conditionnelles ne sont pas prises en charge lorsqu'elle CloudFront est configurée pour transférer les cookies (tous ou un sous-ensemble).

Un format standard de paire nom-valeur est requis

CloudFront transmet un en-tête de cookie uniquement si la valeur est conforme au format standard de paire nom-valeur, par exemple : "Cookie: cookie1=value1; cookie2=value2"

Désactiver la mise en cache des en-têtes Set-Cookie

S'il CloudFront est configuré pour transférer les cookies vers l'origine (qu'il s'agisse de tous les cookies ou de cookies spécifiques), il met également en cache Set-Cookie les en-têtes reçus dans la réponse d'origine. CloudFront inclut ces Set-Cookie en-têtes dans sa réponse au visualiseur d'origine, et les inclut également dans les réponses suivantes diffusées à partir du CloudFront cache.

Si vous souhaitez recevoir des cookies à l'origine, mais que vous ne voulez pas CloudFront mettre en cache Set-Cookie les en-têtes dans les réponses de votre origine, configurez votre origine pour ajouter un Cache-Control en-tête avec une no-cache directive spécifiant un Set-Cookie nom de champ. olpPar exemple : Cache-Control: no-cache="Set-Cookie". Pour plus d'informations, consultez la section Directives de contrôle du cache des réponses dans le protocole de transfert hypertexte (HTTP/1.1) : norme de mise en cache.

Longueur maximum des noms de cookie

Si vous configurez CloudFront pour transférer des cookies spécifiques vers votre origine, le nombre total d'octets de tous les noms de cookies que vous configurez CloudFront pour le transfert ne peut pas dépasser 512 moins le nombre de cookies que vous transférez. Par exemple, si vous configurez CloudFront pour transférer 10 cookies vers votre origine, la longueur combinée des noms des 10 cookies ne peut pas dépasser 502 octets (512 à 10).

Si vous configurez CloudFront pour transférer tous les cookies vers votre origine, la longueur des noms des cookies n'a pas d'importance.

Pour plus d'informations sur l'utilisation de la CloudFront console pour mettre à jour une distribution CloudFront afin de transférer les cookies à l'origine, consultezMettre à jour une distribution. Pour plus d'informations sur l'utilisation du CloudFront API pour mettre à jour une distribution, consultez UpdateDistributionle Amazon CloudFront API Reference.