Kelola berapa lama konten tetap dalam cache (kedaluwarsa) - Amazon CloudFront

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 status304 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 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.

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-ageDirektif 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 arahan Cache-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-revalidateArahan 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-errorArahan 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 dalam stale-if-error durasi yang ditentukan. Jika konten basi tidak tersedia, atau konten melebihi stale-if-error durasi, CloudFront menyajikan respons kesalahan kustom yang dikonfigurasi untuk kode status kesalahan yang sesuai.

Gunakan keduanya bersama-sama

stale-while-revalidatedan stale-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 atau Expires 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 Cache-Control: max-age arahan ke objek

CloudFront caching

CloudFront cache objek untuk yang lebih rendah dari nilai Cache-Control: max-age direktif atau nilai maksimum. CloudFront TTL

Caching browser

Browser menyimpan cache objek untuk nilai arahan Cache-Control: max-age.

CloudFront caching

CloudFront caching tergantung pada nilai CloudFront minimum TTL dan maksimum TTL dan Cache-Control max-age arahan:

  • Jika minimum TTL max-age < < maksimumTTL, maka CloudFront cache objek untuk nilai Cache-Control: max-age direktif.

  • Jika max-age < minimumTTL, maka CloudFront cache objek untuk nilai CloudFront minimumTTL.

  • Jika max-age > maksimumTTL, maka CloudFront cache objek untuk nilai CloudFront maksimumTTL.

Caching browser

Browser menyimpan cache objek untuk nilai arahan Cache-Control: max-age.

Asal tidak menambahkan Cache-Control: max-age arahan ke objek

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 Cache-Control: max-age dan Cache-Control: s-maxage mengarahkan ke objek

CloudFront caching

CloudFront cache objek untuk yang lebih rendah dari nilai Cache-Control: s-maxage direktif atau nilai maksimum. CloudFront TTL

Caching browser

Browser menyimpan cache objek untuk nilai arahan Cache-Control max-age.

CloudFront caching

CloudFront caching tergantung pada nilai CloudFront minimum TTL dan maksimum TTL dan Cache-Control: s-maxage arahan:

  • Jika minimum TTL s-maxage < < maksimumTTL, maka CloudFront cache objek untuk nilai Cache-Control: s-maxage direktif.

  • Jika s-maxage < minimumTTL, maka CloudFront cache objek untuk nilai CloudFront minimumTTL.

  • Jika s-maxage > maksimumTTL, maka CloudFront cache objek untuk nilai CloudFront maksimumTTL.

Caching browser

Browser menyimpan cache objek untuk nilai arahan Cache-Control: max-age.

Asal menambahkan Expires header ke objek

CloudFront caching

CloudFront cache objek sampai tanggal di Expires header atau untuk nilai CloudFront maksimumTTL, mana yang lebih cepat.

Caching browser

Browser menyimpan cache objek hingga tanggal di header Expires.

CloudFront caching

CloudFront caching tergantung pada nilai CloudFront minimum TTL dan maksimum TTL dan Expires header:

  • Jika minimum TTL Expires < < maksimumTTL, maka CloudFront cache objek sampai tanggal dan waktu di Expires header.

  • Jika Expires < minimumTTL, maka CloudFront cache objek untuk nilai CloudFront minimumTTL.

  • Jika Expires > maksimumTTL, maka CloudFront cache objek untuk nilai CloudFront maksimumTTL.

Caching browser

Browser menyimpan cache objek hingga tanggal dan waktu di header Expires.

Origin menambahkan Cache-Control: no-cacheno-store,, dan/atau private arahan ke objek

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-cacheno-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
  1. Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/

  2. Di daftar bucket, pilih nama bucket yang berisi objek yang berisi file yang Anda tambahkan headernya.

  3. 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.

  4. Pilih Tindakan, lalu pilih Edit metadata.

  5. Di panel Tambah metadata, lakukan hal berikut:

    1. Pilih Tambah Metadata.

    2. Untuk Jenis, pilih Ditentukan sistem.

    3. Untuk Kunci, pilih nama header yang Anda tambahkan (Kontrol Cache atau Kedaluwarsa).

    4. Untuk Nilai, masukkan nilai header. Misalnya, untuk header Cache-Control, Anda bisa memasukkan max-age=86400. Untuk Expires, Anda dapat memasukkan tanggal kedaluwarsa dan waktu seperti Wed, 30 Jun 2021 09:28:00 GMT.

  6. Di bagian bawah halaman, pilih Edit metadata.