Traitement et mise en cache des codes de statut HTTP 4xx et 5xx provenant de votre origine par CloudFront - Amazon CloudFront

Si nous fournissons une traduction de la version anglaise du guide, la version anglaise du guide aura préséance en cas de contradiction. La traduction sera une traduction automatique.

Traitement et mise en cache des codes de statut HTTP 4xx et 5xx provenant de votre origine par CloudFront

Lorsque CloudFront demande un objet à partir de votre compartiment Amazon S3 ou de votre serveur d'origine personnalisée, l'origine renvoie parfois un code de statut HTTP 4xx ou 5xx qui indique qu'une erreur s'est produite. Le comportement de CloudFront évoluera en fonction des conditions suivantes :

  • Si vous avez configuré des pages d'erreur personnalisées.

  • Si vous avez configuré pendant combien de temps CloudFront doit mettre en cache les réponses d'erreur de votre origine (durée de conservation minimale des erreurs dans le cache).

  • Le code de statut.

  • Pour les codes de statut 5xx, si l'objet demandé figure actuellement dans le cache périphérique CloudFront.

  • Pour certains codes de statut 4xx, si l'origine renvoie un en-tête Cache-Control max-age ou Cache-Control s-maxage.

CloudFront met toujours en cache les réponses aux requêtes GET et HEAD. Vous pouvez également configurer CloudFront pour qu'il mette en cache les réponses apportées aux requêtes OPTIONS. CloudFront ne met pas en cache les réponses aux requêtes qui utilisent d'autres méthodes.

Si l'origine ne répond pas, la demande CloudFront à l'origine expire, ce qui est considéré comme une erreur HTTP 5xx de l'origine, même si l'origine n'a pas répondu avec cette erreur. Dans ce scénario, CloudFront continue de servir le contenu mis en cache. Pour plus d'informations, consultez Origine non disponible,

Si vous avez activé la journalisation, CloudFront écrit les résultats dans les journaux quel que soit le code de statut HTTP.

Pour plus d'informations sur les fonctions et options liées au message d'erreur renvoyé par CloudFront, consultez les ressources suivantes :

Traitement des erreurs par CloudFront lorsque vous avez configuré des pages d'erreur personnalisées

Si vous avez configuré des pages d'erreur personnalisées;, le comportements de CloudFront dépend de si l'objet demandé est dans le cache périphérique.

L'objet demandé n'est pas dans le cache périphérique

CloudFront continue d'essayer d'extraire l'objet demandé de votre origine lorsque que toutes les conditions suivantes sont réunies :

  • un utilisateur demande un objet

  • L'objet n'est pas dans le cache périphérique

  • L'origine renvoie un code de statut HTTP 4xx ou 5xx et l'une des conditions suivantes est vraie :

CloudFront exécute les opérations suivantes :

  1. Dans le cache périphérique CloudFront qui a reçu la requête de l'utilisateur, CloudFront vérifie la configuration de votre distribution et obtient le chemin de la page d'erreur personnalisée qui correspond au code de statut renvoyé par votre origine.

  2. CloudFront recherche le premier comportement de cache de votre distribution dont un modèle de chemin correspond au chemin de la page d'erreur personnalisée.

  3. L'emplacement périphérique CloudFront envoie une demande pour une page d'erreur personnalisée à l'origine qui est spécifiée dans le comportement de cache.

  4. L'origine renvoie la page d'erreur personnalisée à l'emplacement périphérique.

  5. CloudFront renvoie la page d'erreur personnalisée à l'utilisateur qui a fait la demande et met également en cache la page d'erreur personnalisée pour le maximum de ce qui suit :

    • Durée spécifiée par la mise en cache de l’erreur minimum TTL (une minute par défaut)

    • La durée spécifiée par un en-tête Cache-Control max-age ou un en-tête Cache-Control s-maxage qui est renvoyé par l'origine lorsque la première demande a généré l'erreur

  6. Une fois la durée de conservation dans le cache (déterminée à l'étape 5) écoulée, CloudFront tente à nouveau d'obtenir l'objet demandé en transmettant une autre demande à votre origine. CloudFront continue de réessayer aux intervalles spécifiés par la durée de vie minimale (TTL) de la mise en cache des erreurs.

L'objet demandé est dans le cache périphérique

CloudFront continue de servir l'objet figurant actuellement dans le cache périphérique lorsque que toutes les conditions suivantes sont réunies :

  • un utilisateur demande un objet

  • L'objet se trouve dans le cache périphérique, mais il a expiré

  • Votre origine renvoie un code de statut HTTP 5xx au lieu d'un code de statut 304 (Non modifié) ou une version mise à jour de l'objet

CloudFront exécute les opérations suivantes :

  1. Si votre origine renvoie un code de statut 5xx, CloudFront sert l'objet même s'il a expiré. Pendant la période correspondant à la durée de conservation minimale des erreurs dans le cache, CloudFront continue de répondre aux demandes d'utilisateur en servant l'objet à partir du cache périphérique.

    Si votre origine renvoie un code de statut 4xx, CloudFront retourne le code de statut, et non l'objet demandé, à l'utilisateur.

  2. Une fois la durée de conservation minimale des erreurs dans le cache écoulée, CloudFront tente à nouveau d'obtenir l'objet demandé en transmettant une autre demande à votre origine. Notez que si l'objet n'est pas souvent demandé, CloudFront peut l'exclure du cache périphérique alors que votre serveur d'origine renvoie encore des réponses 5xx. Pour en savoir plus sur la durée pendant laquelle des objets restent dans les caches périphériques CloudFront, consultez Gestion de la durée de conservation de contenu dans le cache périphérique (expiration).

Traitement des erreurs par CloudFront lorsque vous n'avez pas configuré des pages d'erreur personnalisées

Si vous n'avez pas configuré des pages d'erreur personnalisées;, le comportements de CloudFront dépend de si l'objet demandé est dans le cache périphérique.

L'objet demandé n'est pas dans le cache périphérique

CloudFront continue d'essayer d'extraire l'objet demandé de votre origine lorsque que toutes les conditions suivantes sont réunies :

  • un utilisateur demande un objet

  • L'objet n'est pas dans le cache périphérique

  • L'origine renvoie un code de statut HTTP 4xx ou 5xx et l'une des conditions suivantes est vraie :

CloudFront exécute les opérations suivantes :

  1. CloudFront renvoie le code de statut 4xx ou 5xx à l'utilisateur et met également en cache le code de statut dans le cache périphérique qui a reçu la demande pour le maximum de ce qui suit :

    • Durée spécifiée par la mise en cache de l’erreur minimum TTL (une minute par défaut)

    • La durée spécifiée par un en-tête Cache-Control max-age ou un en-tête Cache-Control s-maxage qui est renvoyé par l'origine lorsque la première demande a généré l'erreur

  2. Pendant la durée de mise en cache (déterminée à l'étape 1), CloudFront répond aux demandes d'utilisateur suivantes pour le même objet avec le code de statut 4xx ou 5xx mis en cache.

  3. Une fois la durée de conservation dans le cache (déterminée à l'étape 1) écoulée, CloudFront tente à nouveau d'obtenir l'objet demandé en transmettant une autre demande à votre origine. CloudFront continue de réessayer aux intervalles spécifiés par la durée de vie minimale (TTL) de la mise en cache des erreurs.

L'objet demandé est dans le cache périphérique

CloudFront continue de servir l'objet figurant actuellement dans le cache périphérique lorsque que toutes les conditions suivantes sont réunies :

  • un utilisateur demande un objet

  • L'objet se trouve dans le cache périphérique, mais il a expiré

  • Votre origine renvoie un code de statut HTTP 5xx au lieu d'un code de statut 304 (Non modifié) ou une version mise à jour de l'objet

CloudFront exécute les opérations suivantes :

  1. Si votre origine renvoie un code d'erreur 5xx, CloudFront sert l'objet même s'il a expiré. Pendant la durée de la mise en cache d’erreur minimum TTL (une minute par défaut), CloudFront continue de répondre aux demandes de visionneuse en servant l’objet du cache de bord.

    Si votre origine renvoie un code de statut 4xx, CloudFront retourne le code de statut, et non l'objet demandé, à l'utilisateur.

  2. Une fois la durée de conservation minimale des erreurs dans le cache écoulée, CloudFront tente à nouveau d'obtenir l'objet demandé en transmettant une autre demande à votre origine. Notez que si l'objet n'est pas souvent demandé, CloudFront peut l'exclure du cache périphérique alors que votre serveur d'origine renvoie encore des réponses 5xx. Pour en savoir plus sur la durée pendant laquelle des objets restent dans les caches périphériques CloudFront, consultez Gestion de la durée de conservation de contenu dans le cache périphérique (expiration).

Codes de statut HTTP 4xx et 5xx mis en cache par CloudFront

CloudFront met en cache les codes de statut HTTP 4xx et 5xx renvoyés par l'origine, en fonction du code de statut spécifique qui est renvoyé et si votre origine renvoie des en-têtes spécifiques dans la réponse.

Codes de statut HTTP 4xx et 5xx toujours mis en cache par CloudFront

CloudFront met toujours en cache les codes de statut HTTP 4xx et 5xx suivants renvoyés par votre origine. Si vous avez configuré une page d'erreur personnalisée pour un code de statut HTTP, CloudFront met celle-ci en cache.

404

Introuvable

405

Méthode non autorisée

414

URI de demande trop longue

500**

Erreur de serveur interne

501

Non implémenté

502

Passerelle erronée

503

Service non disponible

504

Délai de passerelle expiré

Codes de statut HTTP 4xx que CloudFront met en cache en fonction des en-têtes de contrôle de cache

CloudFront met en cache uniquement les codes de statut HTTP 4xx suivants renvoyés par votre origine si celle-ci renvoie un en-tête Cache-Control max-age ou Cache-Control s-maxage. Si vous avez configuré une page d'erreur personnalisée pour l'un de ces codes de statut HTTP (et que votre origine renvoie l'un des en-têtes de contrôle de cache), CloudFront met en cache la page d'erreur personnalisée.

400 USD

Demande erronée

403

Accès interdit

412

Échec de condition préalable

415

Type de support non pris en charge