Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memahami kebijakan cache
Anda dapat menggunakan kebijakan cache untuk meningkatkan rasio hit cache Anda dengan mengontrol nilai (string kueri URL, header HTTP, dan cookie) yang disertakan dalam kunci cache. CloudFrontmenyediakan beberapa kebijakan cache yang telah ditentukan sebelumnya, yang dikenal sebagai kebijakan terkelola, untuk kasus penggunaan umum. Anda dapat menggunakan kebijakan terkelola ini, atau Anda dapat membuat kebijakan cache sendiri yang khusus untuk kebutuhan Anda. Untuk informasi selengkapnya tentang kebijakan terkelola, lihat Gunakan kebijakan cache terkelola.
Kebijakan cache berisi pengaturan berikut, yang dikategorikan menjadi informasi kebijakan, waktu ke pengaturan langsung (TTL), dan pengaturan kunci cache.
Informasi kebijakan
- Nama
-
Nama untuk mengidentifikasi kebijakan cache. Di konsol, Anda menggunakan nama untuk melampirkan kebijakan cache ke perilaku cache.
- Deskripsi
-
Komentar untuk menjelaskan kebijakan cache. Ini opsional, tetapi dapat membantu Anda mengidentifikasi tujuan kebijakan cache.
Waktu ke pengaturan langsung (TTL)
Pengaturan time to live (TTL) bekerja sama dengan header Cache-Control
dan Expires
HTTP (jika berada dalam respons asal) untuk menentukan berapa lama objek dalam CloudFront cache tetap valid.
- TTL Minimum
-
Jumlah waktu minimum, dalam hitungan detik, Anda ingin objek tetap berada di CloudFront cache sebelum CloudFront memeriksa dengan asal untuk melihat apakah objek telah diperbarui. Untuk informasi selengkapnya, lihat Kelola berapa lama konten tetap dalam cache (kedaluwarsa).
- TTL Maksimum
-
Jumlah waktu maksimum, dalam hitungan detik, objek tetap berada di CloudFront cache sebelum CloudFront memeriksa dengan asal untuk melihat apakah objek telah diperbarui. CloudFront menggunakan pengaturan ini hanya ketika asal mengirim
Cache-Control
atauExpires
header dengan objek. Untuk informasi selengkapnya, lihat Kelola berapa lama konten tetap dalam cache (kedaluwarsa). - TTL Default
-
Jumlah waktu default, dalam hitungan detik, yang Anda inginkan objek tetap berada di CloudFront cache sebelum CloudFront memeriksa dengan asal untuk melihat apakah objek telah diperbarui. CloudFront menggunakan nilai pengaturan ini sebagai TTL objek hanya ketika asal tidak mengirim
Cache-Control
atauExpires
header dengan objek. Untuk informasi selengkapnya, lihat Kelola berapa lama konten tetap dalam cache (kedaluwarsa).
catatan
Jika pengaturan TTL Minimum, TTL Maksimum, dan TTL Default semuanya diatur ke 0, ini menonaktifkan caching. CloudFront
Pengaturan tombol Cache
Pengaturan kunci cache menentukan nilai dalam permintaan penampil yang CloudFront disertakan dalam kunci cache. Nilai dapat mencakup string kueri URL, header HTTP, dan cookie. Nilai yang Anda sertakan dalam kunci cache secara otomatis disertakan dalam permintaan yang CloudFront dikirim ke asal, yang dikenal sebagai permintaan asal. Untuk informasi tentang pengendalian permintaan asal tanpa memengaruhi kunci cache, lihat Kontrol permintaan asal dengan kebijakan.
Pengaturan kunci Cache meliputi:
- Header
-
Header HTTP dalam permintaan penampil yang CloudFront termasuk dalam kunci cache dan permintaan asal. Untuk header, Anda dapat memilih salah satu pengaturan berikut:
-
Tidak ada – Header HTTP dalam permintaan penampil adalah tidak yang termasuk dalam kunci cache dan tidak secara otomatis disertakan dalam permintaan asal.
-
Sertakan header berikut - Anda menentukan header HTTP mana dalam permintaan penampil yang disertakan dalam kunci cache dan secara otomatis disertakan dalam permintaan asal.
Saat Anda menggunakan setelan Sertakan header berikut, Anda menentukan header HTTP berdasarkan namanya, bukan nilainya. Misalnya, pertimbangkan HTTP header berikut:
Accept-Language: en-US,en;q=0.5
Dalam hal ini, Anda menentukan header sebagai
Accept-Language
, bukan sebagaiAccept-Language: en-US,en;q=0.5
. Namun, CloudFront termasuk header lengkap, termasuk nilainya, dalam kunci cache dan permintaan asal.Anda juga dapat menyertakan header tertentu yang dihasilkan oleh CloudFront dalam kunci cache. Untuk informasi selengkapnya, lihat Tambahkan header CloudFront permintaan.
-
-
Cookie dalam permintaan penampil yang CloudFront termasuk dalam kunci cache dan permintaan asal. Untuk cookie, Anda dapat memilih salah satu pengaturan berikut:
-
Tidak ada – Cookie di permintaan penampil adalah tidak yang termasuk dalam kunci cache dan tidak secara otomatis disertakan dalam permintaan asal.
-
Semua – Semua cookie di permintaan penampil disertakan dalam kunci cache dan secara otomatis disertakan dalam permintaan asal.
-
Sertakan cookie tertentu - Anda menentukan cookie mana dalam permintaan penampil yang disertakan dalam kunci cache dan secara otomatis disertakan dalam permintaan asal.
-
Sertakan semua cookie kecuali — Anda menentukan cookie mana dalam permintaan penampil yang tidak termasuk dalam kunci cache dan tidak secara otomatis disertakan dalam permintaan asal. Semua cookie lain, kecuali cookie yang Anda tentukan, adalah disertakan dalam kunci cache dan secara otomatis disertakan dalam permintaan asal.
Ketika Anda menggunakan Sertakan cookie yang ditentukan atau Sertakan semua cookie kecuali pengaturan, Anda menentukan cookie dengan namanya, bukan nilainya. Misalnya, pertimbangkan berikut ini
Cookie
header:Cookie: session_ID=abcd1234
Dalam hal ini, Anda menentukan cookie sebagai
session_ID
, bukan sebagaisession_ID=abcd1234
. Namun, CloudFront termasuk cookie lengkap, termasuk nilainya, dalam kunci cache dan permintaan asal. -
- String kueri
-
String kueri URL dalam permintaan penampil yang CloudFront disertakan dalam kunci cache dan permintaan asal. Untuk string kueri, Anda dapat memilih salah satu pengaturan berikut:
-
Tidak ada – String kueri pada permintaan pemirsa adalah tidak yang termasuk dalam kunci cache dan tidak secara otomatis disertakan dalam permintaan asal.
-
Semua – Semua string kueri dalam permintaan penampil disertakan dalam kunci cache dan juga secara otomatis disertakan dalam permintaan asal.
-
Sertakan string kueri yang ditentukan - Anda menentukan string kueri mana dalam permintaan penampil yang disertakan dalam kunci cache dan secara otomatis disertakan dalam permintaan asal.
-
Sertakan semua string kueri kecuali - Anda menentukan string kueri mana dalam permintaan penampil yang tidak disertakan dalam kunci cache dan tidak secara otomatis disertakan dalam permintaan asal. Semua string kueri lainnya, kecuali untuk yang Anda tentukan, adalah disertakan dalam kunci cache dan secara otomatis disertakan dalam permintaan asal.
Saat Anda menggunakan Sertakan string kueri yang ditentukan atau Sertakan semua string kueri kecuali setelan, Anda menentukan string kueri berdasarkan namanya, bukan nilainya. Misalnya, pertimbangkan alur URL berikut ini:
/content/stories/example-story.html?split-pages=false
Dalam hal ini, Anda menentukan string kueri sebagai
split-pages
, bukan sebagaisplit-pages=false
. Namun, CloudFront termasuk string kueri lengkap, termasuk nilainya, dalam kunci cache dan permintaan asal. -
- Dukungan kompresi
-
Pengaturan ini memungkinkan CloudFront untuk meminta dan menyimpan objek cache yang dikompresi dalam format kompresi Gzip atau Brotli, ketika penampil mendukungnya. Pengaturan ini juga memungkinkan CloudFront kompresi bekerja. Penampil menunjukkan dukungan mereka untuk format kompresi ini dengan
Accept-Encoding
Header HTTP.catatan
Browser web Chrome dan Firefox mendukung kompresi Brotli hanya jika permintaan dikirim menggunakan HTTPS. Browser ini tidak mendukung Brotli dengan permintaan HTTP.
Aktifkan pengaturan ini jika salah satu di bawah ini benar:
-
Asal Anda mengembalikan objek terkompresi Gzip ketika penampil mendukungnya (permintaan berisi header HTTP
Accept-Encoding
dengangzip
sebagai nilai). Dalam hal ini, gunakan pengaturan berkemampuan Gzip (disetelEnableAcceptEncodingGzip
ketrue
dalam CloudFront API, AWS SDK AWS CLI, atau AWS CloudFormation). -
Asal Anda mengembalikan objek terkompresi Brotli saat penampil mendukungnya (permintaan memuat
Accept-Encoding
Header HTTP denganbr
sebagai nilai). Dalam kasus ini, gunakan setelan berkemampuan Brotli (disetelEnableAcceptEncodingBrotli
ketrue
dalam CloudFront API, AWS SDK AWS CLI, atau). AWS CloudFormation -
Perilaku cache yang dilampirkan kebijakan cache ini dikonfigurasi dengan CloudFrontkompresi. Dalam hal ini, Anda dapat mengaktifkan caching untuk Gzip atau Brotli, atau keduanya. Saat CloudFront kompresi diaktifkan, mengaktifkan caching untuk kedua format dapat membantu mengurangi biaya transfer data ke internet.
catatan
Jika Anda mengaktifkan caching untuk salah satu atau kedua format kompresi ini, jangan sertakan
Accept-Encoding
header dalam kebijakan permintaan asal yang terkait dengan perilaku cache yang sama. CloudFrontselalu menyertakan header ini dalam permintaan asal saat caching diaktifkan untuk salah satu format ini, jadi termasukAccept-Encoding
dalam kebijakan permintaan asal tidak berpengaruh.Jika server asal Anda tidak mengembalikan objek terkompresi Gzip atau Brotli, atau perilaku cache tidak dikonfigurasi dengan CloudFront kompresi, jangan aktifkan caching untuk objek terkompresi. Jika Anda melakukannya, hal tersebut dapat menyebabkan penurunan rasio tembolok.
Berikut ini menjelaskan bagaimana pengaturan ini mempengaruhi CloudFront distribusi. Semua skenario berikut ini mengasumsikan bahwa permintaan pemirsa mencakup
Accept-Encoding
header. Ketika permintaan penampil tidak menyertakanAccept-Encoding
header, CloudFront tidak menyertakan header ini di kunci cache dan tidak menyertakannya dalam permintaan asal yang sesuai.- Saat caching, objek terkompresi diaktifkan untuk kedua format kompresi
-
Jika penampil mendukung Gzip dan Brotli—yaitu, jika
br
nilaigzip
dan keduanya ada diAccept-Encoding
header dalam permintaan penampil— lakukan hal berikut: CloudFront-
Normalisasi header ke
Accept-Encoding: br,gzip
dan mencakup header yang dinormalisasi dalam tombol cache. Kunci cache tidak menyertakan nilai lain yang ada diAccept-Encoding
header yang dikirim oleh penampil. -
Jika lokasi tepi memiliki objek terkompresi Brotli atau Gzip di cache yang sesuai dengan permintaan dan tidak kedaluwarsa, lokasi tepi mengembalikan objek ke penampil.
-
Jika lokasi tepi tidak memiliki objek terkompresi Brotli atau Gzip di cache yang cocok dengan permintaan dan tidak kedaluwarsa, CloudFront sertakan header (
Accept-Encoding: br,gzip
) yang dinormalisasi dalam permintaan asal yang sesuai. Permintaan asal tidak menyertakan nilai lain yang ada diAccept-Encoding
header yang dikirim oleh penampil.
Jika penampil mendukung satu format kompresi tetapi tidak yang lain—misalnya, jika
gzip
adalah nilai diAccept-Encoding
header dalam permintaan penampil tetapibr
CloudFront tidak— lakukan hal berikut:-
Normalisasi header ke
Accept-Encoding: gzip
dan mencakup header yang dinormalisasi dalam tombol cache. Kunci cache tidak menyertakan nilai lain yang ada diAccept-Encoding
header yang dikirim oleh penampil. -
Jika lokasi tepi memiliki objek terkompresi Gzip di cache yang cocok dengan permintaan dan tidak kedaluwarsa, lokasi tepi akan mengembalikan objek ke penampil.
-
Jika lokasi tepi tidak memiliki objek terkompresi Gzip di cache yang cocok dengan permintaan dan tidak kedaluwarsa, CloudFront sertakan header (
Accept-Encoding: gzip
) yang dinormalisasi dalam permintaan asal yang sesuai. Permintaan asal tidak menyertakan nilai lain yang ada diAccept-Encoding
header yang dikirim oleh penampil.
Untuk memahami CloudFront apa yang dilakukan jika penampil mendukung Brotli tetapi tidak Gzip, ganti dua format kompresi satu sama lain dalam contoh sebelumnya.
Jika penampil tidak mendukung Brotli atau GZip—yaitu,
Accept-Encoding
header dalam permintaan penampil tidak berisibr
atau sebagai nilai—:gzip
CloudFront-
Tidak termasuk
Accept-Encoding
header dalam kunci cache. -
Termasuk
Accept-Encoding: identity
dalam permintaan asal terkait. Permintaan asal tidak menyertakan nilai lain yang ada diAccept-Encoding
header yang dikirim oleh penampil.
-
- Saat caching, objek terkompresi diaktifkan untuk satu format kompresi, tetapi tidak lainnya
-
Jika penampil mendukung format yang mengaktifkan caching — misalnya, jika caching objek terkompresi diaktifkan untuk Gzip dan penampil mendukung Gzip (
gzip
adalah salah satu nilai diAccept-Encoding
header dalam permintaan penampil) — lakukan hal berikut: CloudFront-
Normalisasi header ke
Accept-Encoding: gzip
dan mencakup header yang dinormalisasi dalam tombol cache. -
Jika lokasi tepi memiliki objek terkompresi Gzip di cache yang cocok dengan permintaan dan tidak kedaluwarsa, lokasi tepi akan mengembalikan objek ke penampil.
-
Jika lokasi tepi tidak memiliki objek terkompresi Gzip di cache yang cocok dengan permintaan dan tidak kedaluwarsa, CloudFront sertakan header (
Accept-Encoding: gzip
) yang dinormalisasi dalam permintaan asal yang sesuai. Permintaan asal tidak menyertakan nilai lain yang ada diAccept-Encoding
header yang dikirim oleh penampil.
Perilaku ini sama saat penampil mendukung Gzip dan Brotli ( header
Accept-Encoding
di permintaan penampil mencakup keduanyagzip
danbr
sebagai nilai), karena dalam skenario ini, caching di objek terkompresi untuk Brotli tidak diaktifkan.Untuk memahami CloudFront apa yang terjadi jika caching objek terkompresi diaktifkan untuk Brotli tetapi tidak Gzip, ganti dua format kompresi satu sama lain dalam contoh sebelumnya.
Jika penampil tidak mendukung format kompresi yang caching diaktifkan (
Accept-Encoding
header dalam permintaan penampil tidak berisi nilai untuk format tersebut), CloudFront:-
Tidak termasuk
Accept-Encoding
header dalam kunci cache. -
Termasuk
Accept-Encoding: identity
dalam permintaan asal terkait. Permintaan asal tidak menyertakan nilai lain yang ada diAccept-Encoding
header yang dikirim oleh penampil.
-
- Saat caching, objek terkompresi dinonaktifkan untuk kedua format kompresi
-
Saat caching objek terkompresi dinonaktifkan untuk kedua format kompresi CloudFront , perlakukan
Accept-Encoding
header sama seperti header HTTP lainnya dalam permintaan penampil. Secara default, itu tidak termasuk dalam kunci cache dan tidak termasuk dalam permintaan asal. Anda dapat memasukkannya ke dalam daftar header dalam kebijakan cache atau kebijakan permintaan asal sama seperti header HTTP lainnya.
-