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 khusus, asal Anda terkadang mengembalikan kode status HTTP 4xx atau 5xx, yang menunjukkan bahwa telah terjadi kesalahan. CloudFront perilaku tergantung pada:
-
Apakah Anda telah mengonfigurasi halaman kesalahan khusus
-
Apakah Anda telah mengonfigurasi berapa lama Anda CloudFront ingin menyimpan respons kesalahan dari sumber 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-ageatauCache-Control s-maxage
CloudFront selalu menyimpan tanggapan GET dan HEAD permintaan. Anda juga dapat mengonfigurasi CloudFront untuk menyimpan respons terhadap OPTIONS permintaan. CloudFront tidak menyimpan tanggapan terhadap permintaan yang menggunakan metode lain.
Jika asal tidak merespons, CloudFront permintaan ke asal habis waktu 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 berhubungan dengan pesan kesalahan yang dikembalikan dari CloudFront, lihat berikut ini:
-
Untuk informasi tentang pengaturan untuk halaman kesalahan khusus di CloudFront konsol, lihatHalaman kesalahan kustom dan cache kesalahan.
-
Untuk informasi tentang kesalahan caching minimum TTL di CloudFront konsol, lihat. Kesalahan cache minimum TTL (detik)
-
Untuk daftar kode status HTTP yang di- CloudFront cache, lihatKode status HTTP 4xx dan 5xx yang di-cache CloudFront.
Topik
Cara CloudFront memproses kesalahan saat Anda telah mengonfigurasi halaman kesalahan khusus
Jika Anda telah mengonfigurasi halaman kesalahan khusus, 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:
-
Asal Anda mengembalikan kode status HTTP 5xx, bukan mengembalikan kode status 304 (Not Modified) atau versi terbaru dari objek.
-
Kota asal Anda mengembalikan kode status HTTP 4xx yang tidak dibatasi oleh header kontrol cache dan termasuk dalam daftar kode status berikut: Kode status HTTP 4xx dan 5xx yang di-cache CloudFront.
-
Origin Anda mengembalikan kode status HTTP 4xx dengan
Cache-Control max-ageheader atauCache-Control s-maxageheader, dan kode status disertakan dalam daftar kode status berikut: KontrolKode status HTTP 4xx yang di- CloudFront cache berdasarkan header Cache-Control.
-
CloudFront melakukan hal berikut:
-
Di cache CloudFront tepi yang menerima permintaan penampil, CloudFront periksa konfigurasi distribusi Anda dan dapatkan jalur halaman kesalahan khusus yang sesuai dengan kode status yang dikembalikan asal Anda.
-
CloudFront menemukan perilaku cache pertama dalam distribusi Anda yang memiliki pola jalur yang cocok dengan jalur halaman kesalahan kustom.
-
Lokasi CloudFront tepi mengirimkan permintaan untuk halaman kesalahan kustom ke asal yang ditentukan dalam perilaku cache.
-
Kota asal mengembalikan halaman kesalahan kustom ke lokasi tepi.
-
CloudFront mengembalikan halaman kesalahan khusus ke penampil yang membuat permintaan, dan juga menyimpan halaman kesalahan khusus untuk maksimum yang berikut:
-
Jumlah waktu yang ditentukan oleh kesalahan caching minimum TTL (10 detik secara default)
-
Jumlah waktu yang ditentukan oleh
Cache-Control max-ageheader atauCache-Control s-maxageheader yang dikembalikan oleh asal ketika permintaan pertama menghasilkan kesalahan
-
-
Setelah waktu caching (ditentukan pada Langkah 5) telah berlalu, coba lagi CloudFront 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.
catatan
Jika Anda juga mengonfigurasi perilaku cache untuk halaman kesalahan kustom yang sama, gunakan CloudFront perilaku cache TTL sebagai gantinya. Dalam hal ini, CloudFront akan melakukan hal berikut untuk langkah 5 dan 6:
-
Setelah CloudFront mengembalikan halaman kesalahan khusus ke penampil yang membuat permintaan, periksa CloudFront perilaku cache TTL (misalnya, Anda mengatur TTL default ke 5 detik). CloudFront kemudian menyimpan halaman kesalahan khusus hingga maksimum itu.
-
Setelah 5 detik berlalu, CloudFront mengambil halaman kesalahan khusus dari asal lagi. CloudFront akan terus mencoba lagi pada interval yang ditentukan oleh perilaku cache TTL.
Untuk informasi selengkapnya, lihat pengaturan TTL Minimum TTL perilaku cache.
Objek yang diminta ada di cache tepi
CloudFront terus melayani objek yang saat ini ada di cache tepi ketika semua hal berikut ini 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:
-
Jika asal Anda mengembalikan kode status 5xx, CloudFront melayani objek meskipun telah kedaluwarsa. Selama durasi kesalahan caching minimum TTL, 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.
-
Setelah kesalahan caching minimum TTL 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 mengusirnya dari cache tepi saat server asal Anda masih mengembalikan respons 5xx. Untuk informasi tentang berapa lama objek tetap berada di cache CloudFront tepi, lihatMengelola berapa lama konten tetap dalam cache (kedaluwarsa).
Cara CloudFront memproses kesalahan jika Anda belum mengonfigurasi halaman kesalahan khusus
Jika Anda belum mengonfigurasi halaman kesalahan khusus, 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:
-
Asal Anda mengembalikan kode status HTTP 5xx, bukan mengembalikan kode status 304 (Not Modified) atau versi terbaru dari objek.
-
Kota asal Anda mengembalikan kode status HTTP 4xx yang tidak dibatasi oleh header kontrol cache dan termasuk dalam daftar kode status berikut: Kode status HTTP 4xx dan 5xx yang di-cache CloudFront
-
Origin Anda mengembalikan kode status HTTP 4xx dengan
Cache-Control max-ageheader atauCache-Control s-maxageheader dan kode status disertakan dalam daftar kode status berikut: KontrolKode status HTTP 4xx yang di- CloudFront cache berdasarkan header Cache-Control.
-
CloudFront melakukan hal berikut:
-
CloudFront mengembalikan kode status 4xx atau 5xx ke penampil, dan juga menyimpan kode status di cache tepi yang menerima permintaan untuk maksimum berikut:
-
Jumlah waktu yang ditentukan oleh kesalahan caching minimum TTL (10 detik secara default)
-
Jumlah waktu yang ditentukan oleh
Cache-Control max-ageheader atauCache-Control s-maxageheader yang dikembalikan oleh asal ketika permintaan pertama menghasilkan kesalahan
-
-
Selama durasi waktu caching (ditentukan di Langkah 1), CloudFront merespons permintaan penampil berikutnya untuk objek yang sama dengan kode status 4xx atau 5xx cache.
-
Setelah waktu caching (ditentukan pada Langkah 1) telah berlalu, coba lagi CloudFront 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 ada di cache tepi ketika semua hal berikut ini benar:
-
Penampil meminta sebuah objek.
-
Objek berada dalam cache tepi namun telah kedaluwarsa. Ini berarti objek sudah basi.
-
Asal Anda mengembalikan kode status HTTP 5xx, bukan mengembalikan kode status 304 (Not Modified) atau versi terbaru dari objek.
CloudFront melakukan hal berikut:
-
Jika asal Anda mengembalikan kode kesalahan 5xx, CloudFront melayani objek meskipun telah kedaluwarsa. Selama 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.
-
Setelah kesalahan caching minimum TTL berlalu, CloudFront coba lagi untuk mendapatkan objek yang diminta dengan meneruskan permintaan lain ke asal Anda. Jika objek tidak sering diminta, CloudFront mungkin mengusirnya 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-errorStale-While-Revalidatedirektif or, 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 TTL Maksimum maksimum yang ditentukan. Setelah durasi ini, objek tidak akan tersedia dari cache tepi.
Kode status HTTP 4xx dan 5xx yang di-cache CloudFront
CloudFront menyimpan kode status HTTP 4xx dan 5xx yang dikembalikan oleh asal Anda, tergantung pada kode status spesifik yang dikembalikan dan apakah asal Anda mengembalikan header tertentu dalam respons.
CloudFront menyimpan kode status HTTP 4xx dan 5xx berikut yang dikembalikan oleh asal Anda. Jika Anda mengonfigurasi halaman kesalahan khusus untuk kode status HTTP, CloudFront cache halaman kesalahan kustom.
catatan
Jika Anda menggunakan kebijakan cache CachingDisabled terkelola, CloudFront kode status atau halaman kesalahan khusus ini tidak akan di-cache.
|
404 |
Tidak Ditemukan |
|
414 |
Request-URI Terlalu Besar |
|
500 |
Kesalahan Server Internal |
|
501 |
Tidak Diterapkan |
|
502 |
Gateway Buruk |
|
503 |
Layanan Tidak Tersedia |
|
504 |
Gerbang Time-out |
Kode status HTTP 4xx yang di- CloudFront 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 khusus untuk salah satu kode status HTTP ini — dan asal Anda mengembalikan salah satu header kontrol CloudFront cache — menyimpan halaman kesalahan khusus.
|
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.