Bagaimana CloudFront memproses kode status HTTP 4xx dan 5xx dari asal Anda - Amazon CloudFront

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Bagaimana CloudFront memproses kode status HTTP 4xx dan 5xx dari asal Anda

Saat CloudFront meminta objek dari bucket Amazon S3 atau server asal kustom, asal Anda terkadang menampilkan kode status HTTP 4xx atau 5xx, yang menunjukkan bahwa telah terjadi kesalahan. CloudFront perilaku tergantung pada:

  • Apakah Anda telah mengkonfigurasi halaman kesalahan kustom

  • Apakah Anda telah mengonfigurasi berapa lama Anda CloudFront ingin menyimpan respons kesalahan cache dari asal Anda (kesalahan caching minimum TTL)

  • Kode status

  • Untuk kode status 5xx, apakah objek yang diminta saat ini berada di cache CloudFront tepi

  • Untuk beberapa kode status 4xx, apakah asal mengembalikan header Cache-Control max-age atau Cache-Control s-maxage

CloudFront selalu menyimpan respons GET dan HEAD permintaan. Anda juga dapat CloudFront mengonfigurasi respons cache terhadap OPTIONS permintaan. CloudFront tidak menyimpan respons terhadap permintaan yang menggunakan metode lain.

Jika asal tidak merespons, CloudFront permintaan ke waktu asal habis yang dianggap sebagai kesalahan HTTP 5xx dari asal, meskipun asal tidak merespons dengan kesalahan itu. Dalam skenario itu, CloudFront terus menyajikan konten yang di-cache. Untuk informasi selengkapnya, lihat Tempat asal tidak tersedia.

Jika Anda telah mengaktifkan logging, CloudFront tulis hasilnya ke log terlepas dari kode status HTTP.

Untuk informasi selengkapnya tentang fitur dan opsi yang terkait dengan pesan galat yang dikembalikan CloudFront, lihat berikut ini:

Bagaimana CloudFront proses kesalahan ketika Anda telah mengkonfigurasi halaman kesalahan kustom

Jika Anda telah mengonfigurasi halaman kesalahan kustom, CloudFront perilaku tergantung pada apakah objek yang diminta ada di cache tepi.

Objek yang diminta tidak ada di cache tepi

CloudFront terus mencoba untuk mendapatkan objek yang diminta dari asal Anda ketika semua hal berikut benar:

  • Penampil meminta sebuah objek.

  • Objek tidak berada dalam cache tepi.

  • Asal Anda mengembalikan kode status HTTP 4xx atau 5xx dan salah satu dari yang berikut adalah benar:

CloudFront melakukan hal berikut:
  1. Di cache CloudFront tepi yang menerima permintaan penampil, CloudFront periksa konfigurasi distribusi Anda dan dapatkan jalur halaman kesalahan kustom yang sesuai dengan kode status yang dikembalikan asal Anda.

  2. CloudFront menemukan perilaku cache pertama dalam distribusi Anda yang memiliki pola jalur yang cocok dengan jalur halaman kesalahan kustom.

  3. Lokasi CloudFront tepi mengirimkan permintaan untuk halaman kesalahan kustom ke asal yang ditentukan dalam perilaku cache.

  4. Kota asal mengembalikan halaman kesalahan kustom ke lokasi tepi.

  5. CloudFront mengembalikan halaman kesalahan kustom ke penampil yang membuat permintaan, dan juga cache halaman kesalahan kustom untuk maksimum berikut ini:

    • Jumlah waktu yang ditentukan oleh kesalahan caching minimum TTL (10 detik secara default)

    • Jumlah waktu yang ditentukan oleh Cache-Control max-age header atau Cache-Control s-maxage header yang dikembalikan oleh asal ketika permintaan pertama menghasilkan kesalahan

  6. Setelah waktu caching (ditentukan pada Langkah 5) telah berlalu, CloudFront coba lagi untuk mendapatkan objek yang diminta dengan meneruskan permintaan lain ke asal Anda. CloudFront terus mencoba lagi pada interval yang ditentukan oleh kesalahan caching minimum TTL.

Objek yang diminta ada di cache tepi

CloudFront terus melayani objek yang saat ini berada di cache tepi ketika semua hal berikut benar:

  • Penampil meminta sebuah objek.

  • Objek berada dalam cache tepi namun telah kedaluwarsa.

  • Asal Anda mengembalikan kode status HTTP 5xx, bukan mengembalikan kode status 304 (Not Modified) atau versi terbaru dari objek.

CloudFront melakukan hal berikut:
  1. Jika asal Anda mengembalikan kode status 5xx, CloudFront melayani objek meskipun telah kedaluwarsa. Selama durasi kesalahan cache TTL minimum, CloudFront terus menanggapi permintaan penampil dengan menyajikan objek dari cache tepi.

    Jika asal Anda mengembalikan kode status 4xx, CloudFront mengembalikan kode status, bukan objek yang diminta, ke penampil.

  2. Setelah kesalahan caching minimum TTL telah berlalu, CloudFront coba lagi untuk mendapatkan objek yang diminta dengan meneruskan permintaan lain ke asal Anda. Perhatikan bahwa jika objek tidak sering diminta, CloudFront mungkin mengeluarkannya dari cache tepi saat server asal Anda masih mengembalikan respons 5xx. Untuk informasi tentang berapa lama objek berada di cache CloudFront tepi, lihatMengelola berapa lama konten tetap dalam cache (kedaluwarsa).

Cara CloudFront memproses kesalahan jika Anda belum mengonfigurasi halaman kesalahan kustom

Jika Anda belum mengonfigurasi halaman kesalahan kustom, CloudFront perilaku tergantung pada apakah objek yang diminta ada di cache tepi.

Objek yang diminta tidak ada di cache tepi

CloudFront terus mencoba untuk mendapatkan objek yang diminta dari asal Anda ketika semua hal berikut benar:

  • Penampil meminta sebuah objek.

  • Objek tidak berada dalam cache tepi.

  • Asal Anda mengembalikan kode status HTTP 4xx atau 5xx dan salah satu dari yang berikut adalah benar:

CloudFront melakukan hal berikut:

  1. CloudFront mengembalikan kode status 4xx atau 5xx ke penampil, dan juga cache kode status di cache tepi yang menerima permintaan untuk maksimum berikut ini:

    • Jumlah waktu yang ditentukan oleh kesalahan caching minimum TTL (10 detik secara default)

    • Jumlah waktu yang ditentukan oleh Cache-Control max-age header atau Cache-Control s-maxage header yang dikembalikan oleh asal ketika permintaan pertama menghasilkan kesalahan

  2. Selama durasi waktu caching (ditentukan di Langkah 1), CloudFront merespons permintaan penampil berikutnya untuk objek yang sama dengan kode status 4xx atau 5xx cache.

  3. Setelah waktu caching (ditentukan pada Langkah 1) telah berlalu, CloudFront coba lagi untuk mendapatkan objek yang diminta dengan meneruskan permintaan lain ke asal Anda. CloudFront terus mencoba lagi pada interval yang ditentukan oleh kesalahan caching minimum TTL.

Objek yang diminta ada di cache tepi

CloudFront terus melayani objek yang saat ini berada di cache tepi ketika semua hal berikut benar:

  • Penampil meminta sebuah objek.

  • Objek berada dalam cache tepi namun telah kedaluwarsa. Ini berarti objek itu basi.

  • Asal Anda mengembalikan kode status HTTP 5xx, bukan mengembalikan kode status 304 (Not Modified) atau versi terbaru dari objek.

CloudFront melakukan hal berikut:

  1. Jika asal Anda mengembalikan kode kesalahan 5xx, CloudFront melayani objek meskipun telah kedaluwarsa. Untuk durasi kesalahan caching minimum TTL (10 detik secara default), CloudFront terus menanggapi permintaan penampil dengan menyajikan objek dari cache tepi.

    Jika asal Anda mengembalikan kode status 4xx, CloudFront mengembalikan kode status, bukan objek yang diminta, ke penampil.

  2. Setelah kesalahan caching minimum TTL telah berlalu, CloudFront coba lagi untuk mendapatkan objek yang diminta dengan meneruskan permintaan lain ke asal Anda. Jika objek tidak sering diminta, CloudFront mungkin mengeluarkannya dari cache tepi saat server asal Anda masih mengembalikan respons 5xx. Untuk informasi selengkapnya, lihat Mengelola berapa lama konten tetap dalam cache (kedaluwarsa).

Tip
  • Jika Anda mengonfigurasi stale-if-error atau Stale-While-Revalidate direktif, Anda dapat menentukan berapa lama objek basi tersedia di cache tepi. Ini memungkinkan Anda untuk terus menayangkan konten untuk pemirsa Anda bahkan ketika asal Anda tidak tersedia. Untuk informasi, lihat Sajikan konten basi (kedaluwarsa).

  • CloudFront hanya akan melayani objek yang basi hingga nilai TTL maksimum yang ditentukan. Setelah durasi ini, objek tidak akan tersedia dari cache tepi.

Kode status HTTP 4xx dan 5xx yang di-cache CloudFront

CloudFront cache kode status HTTP 4xx dan 5xx yang dikembalikan oleh asal Anda, tergantung pada kode status tertentu yang dikembalikan dan apakah asal Anda mengembalikan header tertentu dalam respons.

CloudFront cache kode status HTTP 4xx dan 5xx berikut yang dikembalikan oleh asal Anda. Jika Anda mengonfigurasi halaman kesalahan kustom untuk kode status HTTP, CloudFront cache halaman kesalahan kustom.

catatan

Jika Anda menggunakan kebijakan cache CachingDisabled terkelola, tidak CloudFront akan menyimpan kode status atau halaman kesalahan kustom ini.

404

Tidak Ditemukan

414

Permintaan-URI Terlalu Besar

500

Kesalahan Server Internal

501

Tidak Diterapkan

502

Gateway Buruk

503

Layanan Tidak Tersedia

504

Waktu Habis Gateway

Kode status HTTP 4xx yang CloudFront di-cache berdasarkan header Cache-Control

CloudFront hanya menyimpan kode status HTTP 4xx berikut yang dikembalikan oleh asal Anda jika asal Anda mengembalikan header Cache-Control max-age atauCache-Control s-maxage. Jika Anda telah mengonfigurasi halaman kesalahan kustom untuk salah satu kode status HTTP ini - dan asal Anda mengembalikan salah satu header kontrol cache - CloudFront cache halaman kesalahan kustom.

400

Permintaan Buruk

403

Dilarang

405

Metode Tidak Diizinkan

412¹

Prakondisi Gagal

415¹

Jenis Media Tidak Didukung

¹ CloudFront tidak mendukung pembuatan halaman kesalahan khusus untuk kode status HTTP ini.