Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kelola berapa lama konten tetap dalam cache (kedaluwarsa)
Anda dapat mengontrol berapa lama file Anda berada dalam CloudFront cache sebelum CloudFront meneruskan permintaan lain ke asal Anda. Mengurangi durasi memungkinkan Anda untuk melayani 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 lewat — yaitu, hingga file kedaluwarsa. Setelah kedaluwarsa, saat berikutnya lokasi tepi mendapat permintaan untuk file tersebut, CloudFront teruskan permintaan ke asal untuk memverifikasi bahwa cache berisi versi terbaru dari file tersebut. 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 OK
dan versi terbaru file.
Jika file di lokasi tepi tidak sering diminta, CloudFront mungkin mengusir file — hapus file sebelum tanggal kedaluwarsa — untuk memberi ruang bagi file yang telah diminta baru-baru ini.
Secara default, setiap file secara otomatis berakhir setelah 24 jam, tetapi Anda dapat mengubah perilaku default dalam dua cara:
-
Untuk mengubah durasi cache untuk semua file yang cocok dengan pola jalur yang sama, Anda dapat mengubah CloudFront pengaturan untuk Minimum TTL, Maksimum TTL, dan Default TTL untuk perilaku cache. Untuk informasi tentang setelan individual, lihat Minimum TTL, Maksimum TTL, dan Default TTL diReferensi pengaturan distribusi.
-
Untuk mengubah durasi cache untuk file individual, Anda dapat mengonfigurasi asal Anda untuk menambahkan
Cache-Control
header denganmax-age
ataus-maxage
direktif, atauExpires
header ke file. Untuk informasi selengkapnya, lihat Gunakan header untuk mengontrol durasi cache untuk masing-masing objek.
Untuk informasi selengkapnya tentang cara Minimum TTLTTL, Default, max-age
dan Maksimum TTL berinteraksi dengan s-maxage
arahan dan bidang Expires
header, lihatTentukan jumlah waktu yang menyimpan objek dalam CloudFront cache.
Anda juga dapat mengontrol berapa lama kesalahan (misalnya,404 Not Found
) tinggal 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 masing-masing objek
Anda dapat menggunakan Cache-Control
dan Expires
header untuk mengontrol berapa lama objek tetap berada di dalam cache. Pengaturan untuk Minimum TTL, Default TTL, dan Maksimum TTL juga memengaruhi durasi cache, tetapi berikut ikhtisar tentang bagaimana header dapat memengaruhi durasi cache:
-
Cache-Control max-age
Direktif memungkinkan Anda 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=
seconds
Misalnya, arahan berikut memberitahu CloudFront untuk menyimpan objek terkait dalam cache selama 3600 detik (satu jam):
Cache-Control: max-age=3600
Jika Anda ingin objek tetap berada di cache CloudFront tepi untuk durasi yang berbeda dari yang berada di cache browser, Anda dapat menggunakan
Cache-Control s-maxage
arahanCache-Control max-age
dan bersama-sama. Untuk informasi selengkapnya, lihat Tentukan jumlah waktu yang menyimpan objek dalam CloudFront cache. -
Bidang
Expires
header memungkinkan Anda menentukan tanggal kedaluwarsa dan waktu menggunakan format yang ditentukan dalam RFC2616, Protokol Transfer Hypertext - 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 nilaiCache-Control max-age
.
Untuk informasi selengkapnya, lihat Tentukan jumlah waktu yang menyimpan objek dalam CloudFront cache.
Anda tidak dapat menggunakan bidang HTTP Cache-Control
atau Pragma
header dalam GET
permintaan dari penampil CloudFront untuk memaksa kembali ke server asal untuk objek tersebut. CloudFront mengabaikan bidang header tersebut dalam permintaan penampil.
Untuk informasi selengkapnya tentang bidang Cache-Control
dan Expires
header, lihat bagian berikut di RFC2616, Hypertext Transfer Protocol - /1.1: HTTP
Sajikan konten basi (kedaluwarsa)
CloudFront mendukung arahan kontrol Stale-While-Revalidate
dan Stale-If-Error
cache.
-
stale-while-revalidate
Arahan ini memungkinkan CloudFront untuk menyajikan konten basi dari cache sementara secara asinkron mengambil versi baru dari asal. Ini meningkatkan latensi karena pengguna menerima tanggapan langsung dari CloudFront lokasi tepi tanpa harus menunggu pengambilan latar belakang, dan konten baru dimuat di latar belakang untuk permintaan masa depan.Dalam contoh berikut, CloudFront cache respons selama satu jam (
max-age=3600
). Jika permintaan dibuat setelah periode ini, CloudFront menyajikan konten basi sambil secara bersamaan mengirim permintaan ke asal untuk memvalidasi ulang dan menyegarkan konten yang di-cache. Konten basi disajikan hingga 10 menit (stale-while-revalidate=600
) saat konten sedang divalidasi ulang.Cache-Control: max-age=3600, stale-while-revalidate=600
catatan
CloudFront akan menyajikan konten basi hingga nilai
stale-while-revalidate
arahan atau nilai CloudFront maksimumTTL, mana yang kurang. -
stale-if-error
Arahan memungkinkan CloudFront untuk menyajikan konten basi dari cache jika asal tidak dapat dijangkau atau mengembalikan kode kesalahan antara 500 dan 600. Ini memastikan bahwa pemirsa dapat mengakses konten bahkan selama pemadaman asal.Dalam contoh berikut, CloudFront cache respons selama satu jam (
max-age=3600
). Jika asal turun atau mengembalikan kesalahan setelah periode ini, CloudFront terus menyajikan konten basi hingga 24 jam (stale-if-error=86400
).Cache-Control: max-age=3600, stale-if-error=86400
catatan
CloudFront akan menyajikan konten basi hingga nilai
stale-if-error
arahan atau nilai CloudFront maksimumTTL, mana yang kurang.Ketika respons kesalahan keduanya
stale-if-error
dan kustom dikonfigurasi, upaya CloudFront pertama untuk menyajikan konten basi jika terjadi kesalahan dalamstale-if-error
durasi yang ditentukan. Jika konten basi tidak tersedia, atau konten melebihistale-if-error
durasi, CloudFront menyajikan respons kesalahan kustom yang dikonfigurasi untuk kode status kesalahan yang sesuai.
- Gunakan keduanya bersama-sama
-
stale-while-revalidate
danstale-if-error
merupakan arahan kontrol cache independen yang dapat digunakan bersama untuk mengurangi latensi dan menambahkan buffer agar asal Anda merespons atau memulihkan.Dalam contoh berikut, CloudFront cache respons selama satu jam (
max-age=3600
). Jika permintaan dibuat setelah periode ini, CloudFront menyajikan konten basi hingga 10 menit (stale-while-revalidate=600
) saat konten sedang divalidasi ulang. Jika server asal mengembalikan kesalahan saat CloudFront mencoba memvalidasi ulang konten, CloudFront terus menayangkan konten basi hingga 24 jam ().stale-if-error=86400
Cache-Control: max-age=3600, stale-while-revalidate=600, stale-if-error=86400
Tip
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 yang 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 menyimpan objek dalam CloudFront cache
Untuk mengontrol jumlah waktu yang CloudFront menyimpan objek dalam cache sebelum mengirim permintaan lain ke asal, Anda dapat:
-
Tetapkan TTL nilai 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
Cache-Control
atauExpires
header dalam tanggapan dari asal. Header ini juga membantu menentukan berapa lama browser menyimpan objek di cache browser sebelum mengirim permintaan lain. CloudFront
Tabel berikut menjelaskan bagaimana Cache-Control
dan Expires
header yang dikirim dari asal bekerja sama dengan TTL pengaturan dalam perilaku cache untuk mempengaruhi caching.
Header asal | Minimal TTL = 0 | Minimal TTL > 0 |
---|---|---|
Asal menambahkan |
CloudFront caching CloudFront cache objek untuk yang lebih rendah dari nilai Caching browser Browser menyimpan cache objek untuk nilai arahan |
CloudFront caching CloudFront caching tergantung pada nilai CloudFront minimum TTL dan maksimum TTL dan
Caching browser Browser menyimpan cache objek untuk nilai arahan |
Asal tidak menambahkan |
CloudFront caching CloudFront cache objek untuk nilai CloudFront defaultTTL. Caching browser Tergantung pada peramban. |
CloudFront caching CloudFront cache objek untuk lebih besar dari nilai CloudFront minimum TTL atau defaultTTL. Caching browser Tergantung pada peramban. |
Asal menambahkan |
CloudFront caching CloudFront cache objek untuk yang lebih rendah dari nilai Caching browser Browser menyimpan cache objek untuk nilai arahan |
CloudFront caching CloudFront caching tergantung pada nilai CloudFront minimum TTL dan maksimum TTL dan
Caching browser Browser menyimpan cache objek untuk nilai arahan |
Asal menambahkan |
CloudFront caching CloudFront cache objek sampai tanggal di Caching browser Browser menyimpan cache objek hingga tanggal di header |
CloudFront caching CloudFront caching tergantung pada nilai CloudFront minimum TTL dan maksimum TTL dan
Caching browser Browser menyimpan cache objek hingga tanggal dan waktu di header |
Origin menambahkan |
CloudFront dan browser menghormati header. |
CloudFront caching CloudFront cache objek untuk nilai CloudFront minimumTTL. Lihat peringatan di bawah tabel ini. Caching browser Browser mematuhi header. |
Awas
Jika minimum Anda TTL lebih besar dari 0, CloudFront gunakan minimum kebijakan cacheTTL, meskipun private
arahan Cache-Control: no-cache
no-store
,, dan/atau ada di header asal.
Jika asal dapat dijangkau, CloudFront dapatkan objek dari asal dan kembalikan ke penampil.
Jika asal tidak dapat dijangkau dan TTL nilai 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=0
dengan objek yang dikembalikan dari asal. Hal ini menyebabkan CloudFront untuk mengembalikan kesalahan dalam menanggapi permintaan future jika asal tidak dapat dijangkau, daripada mengembalikan objek yang didapatnya dari asal sebelumnya.
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.
Tambahkan header ke objek Anda menggunakan konsol Amazon S3
Untuk menambahkan Cache-Control
atau Expires
kolom header ke objek Amazon S3 menggunakan konsol Amazon S3
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Di daftar bucket, pilih nama bucket yang berisi objek yang berisi file yang Anda tambahkan headernya.
-
Pilih kotak centang di samping nama file atau folder yang Anda menambahkan header. Ketika Anda menambah header ke folder, hal tersebut akan memengaruhi semua file dalam folder tersebut.
-
Pilih Tindakan, lalu pilih Edit metadata.
-
Di panel Tambah metadata, lakukan hal berikut:
-
Pilih Tambah Metadata.
-
Untuk Jenis, pilih Ditentukan sistem.
-
Untuk Kunci, pilih nama header yang Anda tambahkan (Kontrol Cache atau Kedaluwarsa).
-
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
.
-
-
Di bagian bawah halaman, pilih Edit metadata.