Wie CloudFront werden die HTTP 4xx- und 5xx-Statuscodes von Ihrem Absender verarbeitet - Amazon CloudFront

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Wie CloudFront werden die HTTP 4xx- und 5xx-Statuscodes von Ihrem Absender verarbeitet

Wenn Sie CloudFront ein Objekt von Ihrem Amazon S3 S3-Bucket oder Ihrem benutzerdefinierten Ursprungsserver anfordern, gibt Ihr Origin manchmal einen HTTP 4xx- oder 5xx-Statuscode zurück, der darauf hinweist, dass ein Fehler aufgetreten ist. CloudFront Das Verhalten hängt ab von:

  • Ob Sie benutzerdefinierte Fehlerseiten konfiguriert haben

  • Ob Sie konfiguriert haben, wie lange Sie Fehlerantworten von Ihrem Ursprung zwischenspeichern CloudFront möchten (Mindestanzahl TTL bei der Zwischenspeicherung von Fehlern)

  • Der Statuscode

  • Bei 5xx-Statuscodes, ob sich das angeforderte Objekt derzeit im CloudFront Edge-Cache befindet

  • Gibt bei einigen 4xx-Statuscodes an, ob der Ursprung einen Header oder einen Cache-Control max-age Header zurückgibt Cache-Control s-maxage

CloudFront speichert immer Antworten auf GET und HEAD Anfragen im Cache. Sie können auch so konfigurieren CloudFront , dass Antworten auf OPTIONS Anfragen zwischengespeichert werden. CloudFront speichert keine Antworten auf Anfragen, die die anderen Methoden verwenden.

Wenn der Absender nicht antwortet, wird bei der CloudFront Anfrage an den Ursprung ein Timeout ausgelöst, was als HTTP 5xx-Fehler vom Ursprung betrachtet wird, obwohl der Ursprung nicht mit diesem Fehler geantwortet hat. In diesem Szenario werden CloudFront weiterhin zwischengespeicherte Inhalte bereitgestellt. Weitere Informationen finden Sie unter Ursprung nicht verfügbar.

Wenn Sie die Protokollierung aktiviert haben, werden die Ergebnisse unabhängig vom HTTP Statuscode in die Protokolle CloudFront geschrieben.

Weitere Informationen zu Funktionen und Optionen, die sich auf die Fehlermeldung beziehen CloudFront, von der zurückgegeben wurde, finden Sie im Folgenden:

Wie CloudFront werden Fehler verarbeitet, wenn Sie benutzerdefinierte Fehlerseiten konfiguriert haben

Wenn Sie benutzerdefinierte Fehlerseiten konfiguriert haben, hängt CloudFront das Verhalten davon ab, ob sich das angeforderte Objekt im Edge-Cache befindet.

Das angeforderte Objekt ist nicht im Edge-Cache vorhanden

CloudFront versucht weiterhin, das angeforderte Objekt von Ihrem Ursprung abzurufen, wenn alle der folgenden Bedingungen zutreffen:

  • Ein Viewer fordert ein Objekt an.

  • Das Objekt ist nicht im Edge-Cache vorhanden.

  • Ihr Ursprung gibt einen HTTP 4xx- oder 5xx-Statuscode zurück und eine der folgenden Bedingungen ist wahr:

CloudFront macht Folgendes:

  1. CloudFront Überprüft im CloudFront Edge-Cache, der die Viewer-Anfrage empfangen hat, Ihre Distributionskonfiguration und ruft den Pfad der benutzerdefinierten Fehlerseite ab, die dem Statuscode entspricht, den Ihr Origin zurückgegeben hat.

  2. CloudFront findet das erste Cache-Verhalten in Ihrer Distribution, dessen Pfadmuster dem Pfad der benutzerdefinierten Fehlerseite entspricht.

  3. Der CloudFront Edge-Standort sendet eine Anforderung für die benutzerdefinierte Fehlerseite an den Ursprung, der im Cache-Verhalten angegeben ist.

  4. Der Ursprungsserver gibt die benutzerdefinierte Fehlerseite an den Edge-Standort zurück.

  5. CloudFront gibt die benutzerdefinierte Fehlerseite an den Viewer zurück, der die Anfrage gestellt hat, und speichert die benutzerdefinierte Fehlerseite für maximal die folgenden Werte im Cache:

    • Die durch das Fehler-Caching-Minimum angegebene Zeitdauer TTL (standardmäßig 10 Sekunden)

    • Der Zeitraum, der durch einen Cache-Control max-age- oder einen Cache-Control s-maxage-Header angegeben ist, der vom Ursprungsserver zurückgegeben wird, wenn die erste Anfrage den Fehler generiert hat

  6. Nach Ablauf der (in Schritt 5 festgelegten) Caching-Zeit wird erneut CloudFront versucht, das angeforderte Objekt abzurufen, indem eine weitere Anfrage an Ihren Ursprung weitergeleitet wird. CloudFront wiederholt den Vorgang in Intervallen, die durch die Mindestanzahl für das Zwischenspeichern von Fehlern festgelegt sind. TTL

Das angeforderte Objekt ist im Edge-Cache vorhanden

CloudFront bedient weiterhin das Objekt, das sich derzeit im Edge-Cache befindet, wenn alle der folgenden Bedingungen zutreffen:

  • Ein Viewer fordert ein Objekt an.

  • Das Objekt ist im Edge-Cache vorhanden, aber es ist abgelaufen.

  • Ihr Ursprung gibt einen HTTP 5xx-Statuscode zurück, anstatt einen 304-Statuscode (nicht geändert) oder eine aktualisierte Version des Objekts zurückzugeben.

CloudFront macht Folgendes:

  1. Wenn Ihr Origin einen 5xx-Statuscode zurückgibt, CloudFront wird das Objekt bereitgestellt, obwohl es abgelaufen ist. Reagiert während der Mindestdauer des Fehler-Cachings CloudFront weiterhin auf Viewer-AnfragenTTL, indem das Objekt aus dem Edge-Cache bereitgestellt wird.

    Wenn Ihr Origin einen 4xx-Statuscode CloudFront zurückgibt, gibt er den Statuscode, nicht das angeforderte Objekt, an den Viewer zurück.

  2. Nach Ablauf der Mindestanzahl TTL an Fehlern beim Zwischenspeichern wird erneut CloudFront versucht, das angeforderte Objekt abzurufen, indem eine weitere Anfrage an Ihren Absender weitergeleitet wird. Beachten Sie, dass das Objekt, wenn es nicht häufig angefordert wird, CloudFront möglicherweise aus dem Edge-Cache entfernt wird, während Ihr Ursprungsserver immer noch 5xx-Antworten zurückgibt. Informationen darüber, wie lange Objekte in CloudFront Edge-Caches verbleiben, finden Sie unter. Verwalten Sie, wie lange Inhalte im Cache verbleiben (Ablauf)

Wie CloudFront werden Fehler verarbeitet, wenn Sie keine benutzerdefinierten Fehlerseiten konfiguriert haben

Wenn Sie keine benutzerdefinierten Fehlerseiten konfiguriert haben, hängt CloudFront das Verhalten davon ab, ob sich das angeforderte Objekt im Edge-Cache befindet.

Das angeforderte Objekt ist nicht im Edge-Cache vorhanden

CloudFront versucht weiterhin, das angeforderte Objekt von Ihrem Ursprung abzurufen, wenn alle der folgenden Bedingungen zutreffen:

  • Ein Viewer fordert ein Objekt an.

  • Das Objekt ist nicht im Edge-Cache vorhanden.

  • Ihr Ursprung gibt einen HTTP 4xx- oder 5xx-Statuscode zurück und eine der folgenden Bedingungen ist wahr:

CloudFront macht Folgendes:

  1. CloudFront gibt den 4xx- oder 5xx-Statuscode an den Viewer zurück und speichert außerdem den Statuscode im Edge-Cache, der die Anforderung für maximal die folgenden Werte erhalten hat:

    • Die durch das Fehler-Caching-Minimum angegebene Zeitdauer TTL (standardmäßig 10 Sekunden)

    • Der Zeitraum, der durch einen Cache-Control max-age- oder einen Cache-Control s-maxage-Header angegeben ist, der vom Ursprungsserver zurückgegeben wird, wenn die erste Anfrage den Fehler generiert hat

  2. CloudFrontReagiert für die Dauer der Caching-Zeit (in Schritt 1 festgelegt) auf nachfolgende Viewer-Anfragen nach demselben Objekt mit dem zwischengespeicherten 4xx- oder 5xx-Statuscode.

  3. CloudFront Versucht nach Ablauf der (in Schritt 1 festgelegten) Caching-Zeit erneut, das angeforderte Objekt abzurufen, indem eine weitere Anfrage an Ihren Ursprung weitergeleitet wird. CloudFront wiederholt den Vorgang in Intervallen, die durch das Mindestmaß für das Zwischenspeichern von Fehlern festgelegt sind. TTL

Das angeforderte Objekt ist im Edge-Cache vorhanden

CloudFront bedient weiterhin das Objekt, das sich derzeit im Edge-Cache befindet, wenn alle der folgenden Bedingungen zutreffen:

  • Ein Viewer fordert ein Objekt an.

  • Das Objekt ist im Edge-Cache vorhanden, aber es ist abgelaufen.

  • Ihr Ursprung gibt einen HTTP 5xx-Statuscode zurück, anstatt einen 304-Statuscode (nicht geändert) oder eine aktualisierte Version des Objekts zurückzugeben.

CloudFront macht Folgendes:

  1. Wenn Ihr Origin einen 5xx-Fehlercode zurückgibt, CloudFront wird das Objekt versendet, obwohl es abgelaufen ist. Reagiert für die Dauer des Fehler-Cachings TTL (standardmäßig 10 Sekunden) CloudFront weiterhin auf Viewer-Anfragen, indem das Objekt aus dem Edge-Cache bereitgestellt wird.

    Wenn Ihr Origin einen 4xx-Statuscode CloudFront zurückgibt, gibt er den Statuscode, nicht das angeforderte Objekt, an den Viewer zurück.

  2. Nach Ablauf der Mindestanzahl TTL an Fehlern beim Zwischenspeichern wird erneut CloudFront versucht, das angeforderte Objekt abzurufen, indem eine weitere Anfrage an Ihren Absender weitergeleitet wird. Beachten Sie, dass das Objekt, wenn es nicht häufig angefordert wird, CloudFront möglicherweise aus dem Edge-Cache entfernt wird, während Ihr Ursprungsserver immer noch 5xx-Antworten zurückgibt. Informationen darüber, wie lange Objekte in CloudFront Edge-Caches verbleiben, finden Sie unter. Verwalten Sie, wie lange Inhalte im Cache verbleiben (Ablauf)

HTTP4xx- und 5xx-Statuscodes, die zwischengespeichert werden CloudFront

CloudFront speichert die von Ihrem Ursprung zurückgegebenen HTTP 4xx- und 5xx-Statuscodes im Cache, abhängig vom jeweiligen Statuscode, der zurückgegeben wird, und davon, ob Ihr Ursprung in der Antwort bestimmte Header zurückgibt.

CloudFront speichert die folgenden HTTP 4xx- und 5xx-Statuscodes, die von deinem Absender zurückgegeben wurden, zwischen. Wenn Sie eine benutzerdefinierte Fehlerseite für einen HTTP Statuscode konfiguriert haben, wird die benutzerdefinierte Fehlerseite CloudFront zwischengespeichert.

Anmerkung

Wenn Sie die Richtlinie für CachingDisabled verwaltete Caches verwenden, CloudFront werden diese Statuscodes oder benutzerdefinierten Fehlerseiten nicht zwischengespeichert.

404

Not Found

414

Anfrage: URI Zu groß

500

Internal Server Error

501

Nicht implementiert

502

Bad Gateway

503

Service nicht verfügbar

504

Gateway-Timeout

HTTP4xx-Statuscodes, die basierend auf CloudFront Headern zwischengespeichert werden Cache-Control

CloudFront speichert nur die folgenden HTTP 4xx-Statuscodes, die von deinem Origin zurückgegeben wurden, im Cache, wenn dein Origin eine Kopfzeile oder zurückgibt. Cache-Control max-age Cache-Control s-maxage Wenn du eine benutzerdefinierte Fehlerseite für einen dieser HTTP Statuscodes konfiguriert hast — und dein Origin einen der Cache-Control-Header zurückgibt — wird die benutzerdefinierte Fehlerseite CloudFront zwischengespeichert.

400

Inkorrekte Anfrage

403

Forbidden

405

Method Not Allowed

412¹

Vorbedingung fehlgeschlagen

415¹

Unsupported Media Type (Nicht unterstützter Medientyp)

¹ unterstützt CloudFront nicht die Erstellung benutzerdefinierter Fehlerseiten für diese HTTP Statuscodes.