View a markdown version of this page

Wie CloudFront verarbeitet die HTTP 4xx- und 5xx-Statuscodes von Ihrem Ursprung - 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 verarbeitet die HTTP 4xx- und 5xx-Statuscodes von Ihrem Ursprung

Wenn Sie CloudFront ein Objekt von Ihrem Amazon S3-Bucket oder Ihrem benutzerdefinierten Ursprungsserver anfordern, gibt Ihr Ursprungsserver 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 (Mindest-TTL für das Zwischenspeichern von Fehlern)

  • dem Statuscode

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

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

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

Wenn der Absender nicht antwortet, kommt es bei der CloudFront Anfrage an den Ursprung zu einem Timeout, was als HTTP 5xx-Fehler vom Ursprung betrachtet wird, obwohl der Absender 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 von Ihnen zurückgegebene Fehlermeldung beziehen CloudFront, finden Sie unter den folgenden Links:

Wie CloudFront verarbeitet Fehler, 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 Ursprungsserver gibt einen HTTP-Statuscode 4xx oder 5xx zurück und eines der Folgenden ist wahr:

CloudFront macht Folgendes:
  1. CloudFront Überprüft im CloudFront Edge-Cache, der die Viewer-Anfrage erhalten hat, Ihre Verteilungskonfiguration und ruft den Pfad der benutzerdefinierten Fehlerseite ab, die dem Statuscode entspricht, den Ihr Ursprung zurückgegeben hat.

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

  3. Die CloudFront Edge-Position 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 Anforderung gestellt hat, und speichert außerdem die benutzerdefinierte Fehlerseite für maximal Folgendes im Cache:

    • Der Zeitraum, der durch die Mindest-TTL für die Zwischenspeicherung von Fehlern angegeben ist (standardmäßig zehn 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. CloudFront Versuchen Sie nach Ablauf der (in Schritt 5 festgelegten) Cache-Zeit erneut, das angeforderte Objekt abzurufen, indem Sie eine weitere Anfrage an Ihren Ursprung weiterleiten. CloudFront wiederholt den Vorgang in Intervallen, die durch die Mindest-TTL für den Fehler beim Zwischenspeichern festgelegt sind.

Anmerkung

Wenn Sie für dieselbe benutzerdefinierte Fehlerseite auch ein Cacheverhalten konfiguriert haben, wird stattdessen das Cache-Verhalten TTL CloudFront verwendet. Gehen Sie in diesem CloudFront Fall für die Schritte 5 und 6 wie folgt vor:

  • After CloudFront gibt die benutzerdefinierte Fehlerseite an den Viewer zurück, der die Anfrage gestellt hat, und CloudFront überprüft das Cacheverhalten TTL (Sie legen beispielsweise die Standard-TTL auf 5 Sekunden fest). CloudFront speichert dann die benutzerdefinierte Fehlerseite bis zu diesem Höchstwert im Cache.

  • CloudFront Ruft nach Ablauf von 5 Sekunden die benutzerdefinierte Fehlerseite erneut vom Ursprung ab. CloudFront versucht es weiterhin in Intervallen, die durch das Cache-Verhalten (TTL) festgelegt sind.

Weitere Informationen finden Sie unter TTL-Einstellungen für das Cacheverhalten.

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 Ursprungsserver gibt einen HTTP-Statuscode 5xx anstelle eines Statuscodes 304 (nicht geändert) oder eine aktualisierte Version des Objekts zurück.

CloudFront macht Folgendes:
  1. Wenn Ihr Ursprung einen 5xx-Statuscode zurückgibt, CloudFront wird das Objekt bereitgestellt, obwohl es abgelaufen ist. Während der Dauer des Fehlers beim Caching reagiert TTL CloudFront weiterhin auf Viewer-Anfragen, indem es das Objekt aus dem Edge-Cache bereitstellt.

    Wenn Ihr Ursprungsserver einen 4xx-Statuscode zurückgibt, sendet CloudFront den Statuscode anstelle des angeforderten Objekts an den Betrachter.

  2. CloudFront Versuchen Sie erneut, das angeforderte Objekt abzurufen, indem Sie eine weitere Anfrage an Ihren Ursprung weiterleiten, nachdem der Fehler beim Zwischenspeichern der TTL abgelaufen ist. Beachten Sie, dass das Objekt, wenn es nicht häufig angefordert wird, CloudFront möglicherweise aus dem Edge-Cache entfernt wird, während Ihr Originalserver immer noch 5xx-Antworten zurückgibt. Hinweise dazu, wie lange Objekte in CloudFront Edge-Caches bleiben, finden Sie unter. Verwalten der Dauer, die Inhalte im Cache bleiben (Ablauf)

Wie CloudFront verarbeitet Fehler, 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 Ursprungsserver gibt einen HTTP-Statuscode 4xx oder 5xx zurück und eines der Folgenden ist wahr:

CloudFront macht Folgendes:

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

    • Der Zeitraum, der durch die Mindest-TTL für die Zwischenspeicherung von Fehlern angegeben ist (standardmäßig zehn 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. Für die Dauer der Zwischenspeicherung (in Schritt 1 bestimmt) reagiert CloudFront auf nachfolgende Viewer-Anfragen für dasselbe Objekte mit den zwischengespeicherten Statuscodes 4xx und 5xx.

  3. CloudFront Versuchen Sie nach Ablauf der (in Schritt 1 festgelegten) Cache-Zeit erneut, das angeforderte Objekt abzurufen, indem Sie eine weitere Anfrage an Ihren Ursprung weiterleiten. CloudFront wiederholt den Vorgang in Intervallen, die durch die Mindest-TTL für den Fehler beim Zwischenspeichern festgelegt sind.

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. Das bedeutet, dass das Objekt veraltet ist.

  • Ihr Ursprungsserver gibt einen HTTP-Statuscode 5xx anstelle eines Statuscodes 304 (nicht geändert) oder eine aktualisierte Version des Objekts zurück.

CloudFront macht Folgendes:

  1. Wenn Ihr Ursprung einen 5xx-Fehlercode zurückgibt, CloudFront wird das Objekt bereitgestellt, obwohl es abgelaufen ist. Während der Dauer des Fehlers beim Zwischenspeichern der TTL-Mindestwert (standardmäßig 10 Sekunden) reagiert CloudFront weiterhin auf Viewer-Anfragen, indem er das Objekt aus dem Edge-Cache bereitstellt.

    Wenn Ihr Ursprungsserver einen 4xx-Statuscode zurückgibt, sendet CloudFront den Statuscode anstelle des angeforderten Objekts an den Betrachter.

  2. CloudFront Versuchen Sie erneut, das angeforderte Objekt abzurufen, indem Sie eine weitere Anfrage an Ihren Ursprung weiterleiten, nachdem die Mindest-TTL für den Fehler beim Zwischenspeichern abgelaufen ist. Wenn das Objekt nicht häufig angefordert wird, löschen Sie es CloudFront möglicherweise aus dem Edge-Cache, während Ihr Original-Server immer noch 5xx-Antworten zurückgibt. Weitere Informationen finden Sie unter Verwalten der Dauer, die Inhalte im Cache bleiben (Ablauf).

Tipp
  • Wenn Sie die Direktive stale-if-error oder Stale-While-Revalidate konfigurieren, können Sie angeben, wie lange die veralteten Objekte im Edge-Cache verfügbar sein sollen. Auf diese Weise können Sie Ihren Viewern auch dann Inhalte bereitstellen, wenn Ihr Ursprung nicht verfügbar ist. Weitere Informationen finden Sie unter Bereitstellung veralteter (abgelaufener) Inhalte.

  • CloudFront liefert nur Objekte, die bis zum angegebenen TTL-Maximalwert veraltet sind. Nach Ablauf dieser Dauer ist das Objekt nicht mehr im Edge-Cache verfügbar.

HTTP-Statuscodes 4xx und 5xx, die zwischengespeichert werden CloudFront

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

CloudFront speichert die folgenden HTTP 4xx- und 5xx-Statuscodes, die von Ihrem Absender zurückgegeben wurden, im Cache. 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 verwalteten Cache verwenden, CloudFront werden diese Statuscodes oder benutzerdefinierten Fehlerseiten nicht zwischengespeichert.

404

Not Found

414

Request-URI Zu groß

500

Internal Server Error

501

Nicht implementiert

502

Bad Gateway

503

Service nicht verfügbar

504

Gateway Time-out

HTTP 4xx-Statuscodes, die basierend auf CloudFront Headern zwischengespeichert werden Cache-Control

CloudFront speichert nur die folgenden HTTP 4xx-Statuscodes, die von Ihrem Ursprung zurückgegeben werden, im Cache, wenn Ihr Ursprung einen OR-Header zurückgibt. Cache-Control max-age Cache-Control s-maxage Wenn Sie eine benutzerdefinierte Fehlerseite für einen dieser HTTP-Statuscodes konfiguriert haben — und Ihr Ursprung 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.