Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengelola berapa lama konten tetap berada di cache (kedaluwarsa)
Anda dapat mengontrol berapa lama file Anda tetap dalam CloudFront cache sebelum mener CloudFront uskan permintaan lain ke sumber Anda. Dengan mengurangi durasi, Anda dapat menyajikan konten dinamis. Peningkatan durasi berarti bahwa pengguna Anda mendapatkan kinerja yang lebih baik karena file Anda lebih mungkin dilayani secara langsung dari edge cache. Durasi yang lebih lama juga mengurangi beban yang berasal dari Anda.
Biasanya, CloudFront menyajikan file dari lokasi tepi hingga durasi cache yang Anda tentukan berlalus—yaitu, hingga file kedaluwarsa. Setelah kedaluwarsa, saat berikutnya lokasi tepi mendapat permintaan untuk file CloudFront , meneruskan permintaan ke asal untuk memverifikasi bahwa cache berisi versi terbaru dari file. Tanggapan dari sumber tergantung pada apakah file telah berubah:
-
Jika CloudFront cache sudah memiliki versi terbaru, asal mengembalikan kode status
304 Not Modified. -
Jika CloudFront cache tidak memiliki versi terbaru, asal mengembalikan kode status
200 OKdan versi terbaru dari file.
Jika file di lokasi tepi tidak sering diminta, CloudFront mungkin menghapus file tersebut—menghapus file sebelum tanggal kedaluwarsa—untuk memberi ruang bagi file yang telah diminta baru-baru ini.
Sebaiknya kelola durasi cache Anda dengan memperbarui kebijakan cache distribusi Anda. Jika Anda memilih untuk tidak menggunakan kebijakan cache, TTL (Time to Live) default adalah 24 jam, tetapi Anda dapat memperbarui pengaturan berikut untuk mengganti default:
-
Untuk mengubah durasi cache untuk semua file yang cocok dengan pola jalur yang sama, Anda dapat mengubah CloudFront pengaturan untuk TTL Minimum, TTL Maksimum , dan TTL Def ault untuk perilaku cache. Untuk informasi tentang pengaturan individual, lihatTTL Minimum,TTL Maksimum, danTTL bawaan.
-
Untuk mengubah durasi cache untuk file individual, Anda dapat mengonfigurasi asal Anda untuk menambahkan
Cache-Controlheader denganmax-agedireks-maxagetif or, atauExpiresheader ke file. Untuk informasi selengkapnya, lihat Gunakan header untuk mengontrol durasi cache untuk objek individual.
Untuk informasi selengkapnya tentang bagaimana TTL Minimum, TTL Def ault, dan TTL Maksimum berinteraksi dengan ar max-age ahan s-maxage dan bidang Expires header, lihat. Tentukan jumlah waktu yang CloudFront menyimpan objek
Anda juga dapat mengontrol berapa lama kesalahan (misalnya,404 Not Found) tetap berada di CloudFront cache sebelum CloudFront mencoba lagi untuk mendapatkan objek yang diminta dengan meneruskan permintaan lain ke asal Anda. Untuk informasi selengkapnya, lihat Bagaimana CloudFront memproses kode status HTTP 4xx dan 5xx dari asal Anda.
Topik
Gunakan header untuk mengontrol durasi cache untuk objek individual
Anda dapat menggunakan Cache-Control dan Expires header untuk mengontrol berapa lama objek tetap berada di dalam cache. Pengaturan untuk TTL Minimum, TTL bawaan, dan TTL Maksimum juga memengaruhi durasi cache, tetapi berikut ini gambaran umum tentang bagaimana header dapat memengaruhi durasi cache:
-
Dengan direk
Cache-Control max-agetif, Anda dapat menentukan berapa lama (dalam detik) bahwa Anda ingin objek tetap berada di cache sebelum CloudFront mendapatkan objek lagi dari server asal. CloudFrontDukungan waktu kedaluwarsa minimum adalah 0 detik. Nilai maksimumnya adalah 100 tahun. Tentukan nilai dalam format berikut:Cache-Control: max-age=secondsMisalnya, arahan berikut memberitahu CloudFront untuk menyimpan objek terkait dalam cache selama 3600 detik (satu jam):
Cache-Control: max-age=3600Jika Anda ingin objek tetap berada di cache CloudFront tepi untuk durasi yang berbeda dari pada cache browser, Anda dapat menggunakan arahan
Cache-Control max-agedan bersama-samaCache-Control s-maxage. Untuk informasi selengkapnya, lihat Tentukan jumlah waktu yang CloudFront menyimpan objek. -
Dengan bidang
Expiresheader, Anda dapat menentukan tanggal dan waktu kedaluwarsa menggunakan format yang ditentukan dalam RFC 2616, Hypertext Transfer Protocol - HTTP/1.1 Bagian 3.3.1, Tanggal Penuh, misalnya:Sat, 27 Jun 2015 23:59:59 GMT
Kami sarankan Anda menggunakan Cache-Control max-age lebih langsung, bukan Expires kolom header untuk mengontrol caching objek. Jika Anda menentukan nilai baik untuk Cache-Control max-age dan untukExpires, hanya CloudFront menggunakan nilai dariCache-Control max-age.
Untuk informasi selengkapnya, lihat Tentukan jumlah waktu yang CloudFront menyimpan objek.
Anda tidak dapat menggunakan Cache-Control kolom HTTP atau Pragma header dalam GET permintaan dari penampil CloudFront untuk memaksa kembali ke server asal untuk objek. CloudFront mengabaikan bidang header tersebut dalam permintaan penampil.
Untuk informasi selengkapnya tentang bidang Cache-Control dan Expires header, lihat bagian berikut di RFC 2616, Hypertext Transfer Protocol --: HTTP/1.1
Sajikan konten basi (kedaluwarsa)
CloudFront mendukung ar Stale-While-Revalidate ahan kontrol dan Stale-If-Error cache. Anda dapat menggunakan arahan ini untuk menentukan berapa lama konten basi tersedia untuk pemirsa.
Stale-While-Revalidate
Arahan ini memungkinkan CloudFront untuk menyajikan konten basi dari cache sementara CloudFront secara asinkron mengambil versi baru dari asal. Ini meningkatkan latensi karena pemirsa menerima tanggapan segera dari lokasi tepi tanpa harus menunggu pengambilan latar belakang. Konten segar dimuat di latar belakang untuk permintaan di masa mendatang.
contoh Contoh: Stale-While-Revalidate
CloudFront melakukan hal berikut ketika Anda mengatur Cache-Control header untuk menggunakan arahan ini.
Cache-Control: max-age=3600, stale-while-revalidate=600
-
CloudFront akan menyimpan respons selama satu jam (
max-age=3600). -
Jika permintaan dibuat setelah durasi ini, CloudFront menyajikan konten basi, sementara secara bersamaan mengirim permintaan ke asal untuk memvalidasi ulang dan menyegarkan konten yang di-cache.
-
Saat konten divalidasi ulang, CloudFront menyajikan konten basi hingga 10 menit ()
stale-while-revalidate=600.
catatan
CloudFront akan melayani konten basi hingga nilai direktif atau stale-while-revalidate nilai TTL CloudFront maksimum, mana yang kurang. Setelah durasi TTL maksimum, objek basi tidak akan tersedia dari cache tepi, terlepas dari nilainya. stale-while-revalidate
Stale-If-Error
Arahan ini memungkinkan CloudFront untuk menyajikan konten basi dari cache jika asal tidak dapat dijangkau atau mengembalikan kode kesalahan yang antara 500 dan 600. Ini memastikan bahwa pemirsa dapat mengakses konten bahkan selama pemadaman asal.
contoh Contoh: Stale-If-Error
CloudFront melakukan hal berikut ketika Anda mengatur Cache-Control header untuk menggunakan arahan ini.
Cache-Control: max-age=3600, stale-if-error=86400
-
CloudFront menyimpan respons selama satu jam (
max-age=3600). -
Jika asal tidak aktif atau mengembalikan kesalahan setelah durasi ini, CloudFront terus menyajikan konten basi hingga 24 jam ()
stale-if-error=86400 -
Jika Anda mengonfigurasi respons kesalahan kustom, CloudFront akan mencoba untuk menyajikan konten basi jika terjadi kesalahan dalam
stale-if-errordurasi yang ditentukan. Jika konten basi tidak tersedia, maka CloudFront akan menampilkan respons kesalahan kustom yang Anda konfigurasikan untuk kode status kesalahan yang sesuai. Untuk informasi selengkapnya, lihat Hasilkan respons kesalahan khusus.
Catatan
-
CloudFront akan melayani konten basi hingga nilai direktif atau
stale-if-errornilai TTL CloudFront maksimum, mana yang kurang. Setelah durasi TTL maksimum, objek basi tidak akan tersedia dari cache tepi, terlepas dari nilainya.stale-if-error -
Jika Anda tidak mengonfigurasi
stale-if-erroratau kustom respons kesalahan, CloudFront akan mengembalikan objek basi atau meneruskan respons kesalahan kembali ke penampil, tergantung pada apakah objek yang diminta ada di cache tepi atau tidak. Untuk informasi selengkapnya, lihat Cara CloudFront memproses kesalahan jika Anda belum mengonfigurasi halaman kesalahan khusus.
Gunakan kedua arahan
K stale-while-revalidate edu stale-if-error anya dan merupakan arahan kontrol cache independen yang dapat Anda gunakan bersama untuk mengurangi latensi dan menambahkan buffer agar asal Anda merespons atau pulihkan.
contoh Contoh: Menggunakan kedua arahan
CloudFront melakukan hal berikut ketika Anda mengatur Cache-Control header untuk menggunakan arahan berikut.
Cache-Control: max-age=3600, stale-while-revalidate=600, stale-if-error=86400
-
CloudFront menyimpan respons selama satu jam (
max-age=3600). -
Jika permintaan dibuat setelah durasi ini, CloudFront sajikan konten basi hingga 10 menit (
stale-while-revalidate=600) saat konten divalidasi ulang. -
Jika server asal mengembalikan kesalahan saat CloudFront mencoba memvalidasi ulang konten, CloudFront akan terus menyajikan konten basi hingga 24 jam ()
stale-if-error=86400.
Caching adalah keseimbangan antara kinerja dan kesegaran. Menggunakan arahan seperti stale-while-revalidate dan stale-if-error dapat meningkatkan kinerja dan pengalaman pengguna, tetapi pastikan konfigurasi selaras dengan seberapa segar konten Anda inginkan. Arahan konten basi paling cocok untuk kasus penggunaan di mana konten perlu disegarkan tetapi memiliki versi terbaru tidak penting. Selain itu, jika konten Anda tidak berubah atau jarang berubah, stale-while-revalidate dapat menambahkan permintaan jaringan yang tidak perlu. Sebagai gantinya, pertimbangkan untuk mengatur durasi cache yang panjang.
Tentukan jumlah waktu yang CloudFront menyimpan objek
Untuk mengontrol jumlah waktu yang CloudFront menyimpan objek di cache sebelum mengirim permintaan lain ke asal, Anda dapat:
-
Tetapkan nilai TTL minimum, maksimum, dan default dalam perilaku cache CloudFront distribusi. Anda dapat mengatur nilai-nilai ini dalam kebijakan cache yang melekat pada perilaku cache (disarankan), atau dalam pengaturan cache warisan.
-
Sertakan
ExpiresheaderCache-Controlatau dalam tanggapan dari asal. Header ini juga membantu menentukan berapa lama browser menyimpan objek di cache browser sebelum mengirim permintaan lain ke CloudFront.
Tabel berikut menjelaskan bagaimana header Cache-Control dan Expires yang dikirim dari asal digunakan bersama dengan pengaturan TTL dalam perilaku cache untuk memengaruhi caching.
| Header asal | TTL minimum = 0 | TTL minimum> 0 |
|---|---|---|
|
Asal menambahkan |
CloudFront caching CloudFront menyimpan objek untuk nilai direktif yang lebih rendah Caching browser Browser menyimpan cache objek untuk nilai arahan |
CloudFront caching CloudFront caching tergantung pada nilai TTL CloudFront minimum dan TTL maksimum dan direktif:
Caching browser Browser menyimpan cache objek untuk nilai arahan |
|
Asal tidak menambahkan direk |
CloudFront cache CloudFront menyimpan objek untuk nilai TTL CloudFront default. Caching browser Tergantung pada peramban. |
CloudFront cache CloudFront menyimpan objek untuk nilai TTL CloudFront minimum atau TTL default yang lebih besar. Caching browser Tergantung pada peramban. |
|
Asal menambahkan |
CloudFront cache CloudFront menyimpan objek untuk nilai direktif yang lebih rendah Caching browser Browser menyimpan cache objek untuk nilai arahan |
CloudFront cache CloudFront caching tergantung pada nilai TTL CloudFront minimum dan TTL maksimum dan direktif:
Caching browser Browser menyimpan cache objek untuk nilai arahan |
|
Origin menambahkan |
CloudFront caching CloudFront menyimpan objek hingga tanggal di Caching browser Browser menyimpan cache objek hingga tanggal di header |
CloudFront cache CloudFront caching tergantung pada nilai TTL CloudFront minimum dan TTL maksimum dan header:
Caching browser Browser menyimpan cache objek hingga tanggal dan waktu di header |
|
Origin menambahkan |
CloudFront dan browser menghormati header. |
CloudFront caching CloudFront menyimpan objek untuk nilai TTL CloudFront minimum. Lihat peringatan di bawah tabel ini. Caching browser Browser mematuhi header. |
Awas
-
Jika TTL minimum Anda lebih besar dari 0 CloudFront , gunakan TTL minimum kebijakan cache, meskipun arahan
Cache-Control: no-cache,no-store, and/orprivateada di header asal.-
Jika asal dapat dijangkau, CloudFront dapatkan objek dari asal dan mengembalikannya ke penampil.
-
Jika asal tidak dapat dijangkau dan nilai TTL minimum atau maksimum lebih besar dari 0, CloudFront akan melayani objek yang didapat dari asal sebelumnya.
Untuk menghindari perilaku ini, sertakan arahan
Cache-Control: stale-if-error=0dengan objek yang dikembalikan dari asal. Hal ini CloudFront menyebabkan mengembalikan kesalahan sebagai respons terhadap permintaan di masa mendatang jika asal tidak dapat dijangkau, daripada mengembalikan objek yang didapat dari asal sebelumnya. -
-
CloudFront tidak menyimpan kode status HTTP 501 (Tidak Diimplementasikan) dari asal S3 ketika header asal menyertakan arahan
Cache-Control: no-cache,no-store, and/orprivate. Ini adalah perilaku default untuk asal S3, bahkan jika pengaturan TTL minimum Anda lebih besar dari 0.
Untuk informasi tentang cara mengubah pengaturan untuk distribusi menggunakan CloudFront konsol, lihatPerbarui distribusi. Untuk informasi tentang cara mengubah pengaturan untuk distribusi menggunakan CloudFront API, lihat UpdateDistribution.
Menambahkan header ke objek Anda dengan menggunakan konsol Amazon S3
Anda dapat menambahkan bidang Expires header Cache-Control atau ke objek Amazon S3 Anda. Untuk melakukannya, Anda memodifikasi bidang metadata untuk objek.
Untuk menambahkan bidang header Cache-Control atau Expirates ke objek Amazon S3
Cache-Control-
Ikuti prosedur di bagian Meng ganti metadata yang ditentukan sistem pada topik Mengedit metadata objek di konsol Amazon S3 di Panduan Pengguna Amazon S3.
-
Untuk Kunci, pilih nama header yang Anda tambahkan (Cache-Controlatau Kedaluwar sa).
-
Untuk Nilai, masukkan nilai header. Misalnya, untuk header
Cache-Control, Anda bisa memasukkanmax-age=86400. UntukExpires, Anda dapat memasukkan tanggal kedaluwarsa dan waktu sepertiWed, 30 Jun 2021 09:28:00 GMT. -
Ikuti prosedur lainnya untuk menyimpan perubahan metadata Anda.