Media CDN menayangkan konten sedekat mungkin dengan pengguna dengan menggunakan infrastruktur edge caching global Google untuk menyimpan konten ke cache dan mengurangi beban pada infrastruktur asal.
Anda dapat mengontrol cara konten di-cache untuk setiap rute. Dengan demikian, Anda dapat mengoptimalkan perilaku berdasarkan jenis konten, atribut permintaan klien, dan persyaratan keaktualan Anda.
Kemampuan penyimpanan dalam cache
Bagian berikut menjelaskan respons yang di-cache Media CDN dan cara meningkatkan pelepasan cache.
Perilaku caching default
Secara default, setelan terkait cache berikut berlaku untuk setiap layanan Edge Cache:
Mode cache default
CACHE_ALL_STATIC:- Mematuhi direktif cache server asal, seperti
Cache-ControlatauExpires, hingga TTL maksimum yang dapat dikonfigurasi. - Meng-cache jenis media statis secara otomatis dengan TTL default 3.600 detik, jika tidak ada direktif cache origin.
- Meng-cache kode status HTTP 200, 204, dan 206 (penyimpanan cache negatif tidak diaktifkan).
- Mematuhi direktif cache server asal, seperti
Tidak meng-cache respons yang memiliki direktif cache-control
no-storeatauprivateatau yang tidak dapat di-cache.
Respons yang bukan konten statis atau yang tidak memiliki perintah cache yang valid tidak di-cache kecuali jika caching dikonfigurasi secara eksplisit. Untuk mempelajari cara mengganti perilaku default, lihat dokumentasi tentang mode cache .
Perilaku default setara dengan cdnPolicy berikut. Rute tanpa cdnPolicy eksplisit yang dikonfigurasi berperilaku seolah-olah memiliki konfigurasi berikut:
cdnPolicy: cacheMode: CACHE_ALL_STATIC defaultTtl: 3600s cacheKeyPolicy: includeProtocol: false excludeHost: false excludeQueryString: false signedRequestMode: DISABLED negativeCaching: false
Respons yang dapat di-cache
Respons yang dapat di-cache adalah respons HTTP yang dapat disimpan dan diambil dengan cepat oleh Media CDN, sehingga memungkinkan waktu pemuatan yang lebih cepat. Tidak semua respons HTTP dapat di-cache.
Anda dapat mengonfigurasi mode cache untuk setiap rute guna mengganti perilaku ini (misalnya, menggunakan mode cache CACHE_ALL_STATIC untuk meng-cache jenis media umum) meskipun server asal tidak menetapkan perintah kontrol cache dalam respons.
Permintaan dan respons yang memenuhi kriteria yang ditentukan dalam respons yang tidak dapat di-cache menggantikan kemampuan di-cache.
Tabel berikut menjelaskan persyaratan untuk meng-cache respons HTTP tertentu. Respons GET dan HEAD harus mematuhi persyaratan ini.
| Atribut HTTP | Persyaratan |
|---|---|
| Kode status | Kode status respons harus salah satu dari 200, 203, 204, 206, 300, 301, 302, 307, 308, 400, 403, 404, 405, 410, 451, 500, 501, 502, 503, atau 504. |
| Metode HTTP | GET dan HEAD |
| Header permintaan | Sebagian besar perintah permintaan penyimpanan dalam cache akan diabaikan. Untuk mengetahui informasi selengkapnya, lihat Perintah kontrol cache. |
| Header respons | Berisi perintah penyimpanan cache HTTP
yang valid seperti Memiliki mode cache yang menyimpan konten tersebut dalam cache, atau memiliki
header |
| Ukuran respons | Hingga 100 GiB. |
Header HTTP Age ditetapkan
berdasarkan waktu Media CDN pertama kali meng-cache respons, dan
biasanya menunjukkan detik sejak objek di-cache di lokasi
perlindungan origin. Jika
server asal Anda menghasilkan header respons Age, gunakan mode cache FORCE_CACHE_ALL
untuk mencegah validasi ulang saat Age melebihi TTL cache.
Untuk mengetahui informasi selengkapnya tentang cara Media CDN menafsirkan perintah HTTP caching, lihat Perintah kontrol cache.
Persyaratan asal
Agar Media CDN dapat meng-cache respons origin yang lebih besar dari 1 MiB, origin harus menyertakan hal berikut dalam header respons untuk permintaan GET, kecuali jika ditentukan lain:
- Header respons HTTP
Last-ModifiedatauETag(validator). - Header HTTP
Dateyang valid. - Header
Content-Lengthyang valid. - Header respons
Content-Range, sebagai respons terhadap permintaanRange GET. HeaderContent-Rangeharus memiliki nilai yang valid dalam bentukbytes x-y/z(denganzadalah ukuran objek).
Protokol origin default adalah HTTP/2. Jika origin Anda hanya mendukung HTTP/1.1, Anda dapat menetapkan kolom protokol secara eksplisit untuk setiap origin.
Respons yang tidak dapat di-cache
Tabel berikut menjelaskan atribut permintaan dan respons yang mencegah respons di-cache. Respons yang dapat di-cache tetapi cocok dengan kriteria "tidak dapat di-cache" tidak akan di-cache.
| Atribut HTTP | Persyaratan |
|---|---|
| Kode status | Kode status selain yang ditentukan sebagai dapat di-cache, seperti HTTP 401, HTTP 412, atau HTTP 505. Kode status ini biasanya mewakili masalah yang dihadapi klien dan bukan status server asal. Meng-cache respons tersebut dapat menyebabkan skenario "keracunan cache" di mana respons "buruk" yang dipicu pengguna di-cache untuk semua pengguna. |
| Header permintaan | Untuk permintaan dengan header permintaan Perintah |
| Header respons | Memiliki header Memiliki header Dalam mode |
| Ukuran respons | Lebih dari 100 GiB. |
Aturan ini berlaku selain mode cache yang dikonfigurasi. Secara khusus:
- Dengan mode cache
CACHE_ALL_STATICyang dikonfigurasi, hanya respons yang dianggap sebagai konten statis atau respons dengan arahan cache yang valid di header responsnya yang di-cache. Respons lainnya di-proxy apa adanya. - Mode cache
FORCE_CACHE_ALLmeng-cache semua respons tanpa syarat, tunduk pada persyaratan tidak dapat di-cache yang dinyatakan sebelumnya. - Mode cache
USE_ORIGIN_HEADERSmengharuskan respons untuk menyetel perintah cache yang valid di header responsnya selain menjadi kode status yang dapat di-cache.
Catatan:
- Respons yang tidak di-cache tidak mengubah perintah kontrol cache atau header lainnya dan di-proxy apa adanya.
- Respons dapat memiliki header
Cache-ControldanExpiresyang diciutkan menjadi satu kolomCache-Control. Misalnya, respons denganCache-Control: publicdanCache-Control: max-age=100pada baris terpisah akan diciutkan sebagaiCache-Control: public,max-age=100. - Respons yang tidak dapat di-cache (respons yang tidak akan pernah di-cache) tidak dihitung sebagai
Cache Egressdari perspektif penagihan.
Menggunakan mode cache
Mode cache memungkinkan Anda mengonfigurasi kapan Media CDN harus mematuhi perintah cache server asal, meng-cache jenis media statis, dan meng-cache semua respons dari server asal, terlepas dari perintah yang ditetapkan.
Mode cache dikonfigurasi di tingkat rute dan, jika dikombinasikan dengan penggantian TTL, memungkinkan Anda mengonfigurasi perilaku cache menurut host, jalur, parameter kueri, dan header (parameter permintaan yang dapat dicocokkan).
- Secara default, Media CDN menggunakan mode cache
CACHE_ALL_STATIC, yang secara otomatis meng-cache jenis media statis umum selama 1 jam (3.600 detik), sekaligus memprioritaskan perintah cache apa pun yang ditentukan oleh server asal untuk respons yang dapat di-cache. - Anda dapat menambah atau mengurangi TTL cache yang diterapkan pada respons tanpa TTL cache eksplisit yang ditetapkan (perintah
max-ageataus-maxage) dengan menetapkan kolomcdnPolicy.defaultTtlpada rute. - Untuk mencegah respons yang tidak berhasil di-cache lebih lama dari yang diinginkan, kode status non-2xx (tidak berhasil) tidak di-cache sesuai dengan
Content-Type(jenis MIME) dan tidak menerapkan TTL default.
Mode cache yang tersedia, yang ditetapkan pada cdnPolicy.cacheMode setiap
rute, ditampilkan dalam tabel berikut.
| Mode cache | Perilaku |
|---|---|
USE_ORIGIN_HEADERS |
Mewajibkan respons server asal untuk menyetel header caching yang valid dan perintah cache yang valid. Untuk mengetahui daftar lengkap persyaratan, lihat Respons yang dapat di-cache. |
CACHE_ALL_STATIC |
Secara otomatis meng-cache respons yang berhasil dengan konten statis,
kecuali jika respons tersebut memiliki perintah Konten statis mencakup video, audio, gambar, dan aset web umum sebagaimana ditentukan oleh jenis MIME di header respons |
FORCE_CACHE_ALL |
Meng-cache respons yang berhasil tanpa syarat, dengan menggantikan semua perintah cache yang ditetapkan oleh server asal. Pastikan untuk tidak menyajikan konten pribadi per pengguna (seperti respons API atau HTML dinamis) dengan mode ini yang dikonfigurasi. |
| BYPASS_CACHE | Setiap permintaan yang cocok dengan rute yang dikonfigurasi dengan mode cache ini akan melewati cache, meskipun ada objek yang di-cache yang cocok dengan kunci cache tersebut. Sebaiknya gunakan ini hanya untuk proses debug karena Media CDN dirancang sebagai infrastruktur cache skala global, bukan proxy serbaguna. |
Jenis MIME konten statis
Mode cache CACHE_ALL_STATIC memungkinkan Media CDN untuk
secara otomatis menyimpan konten statis umum seperti video, audio, gambar, dan
aset web umum berdasarkan jenis MIME yang ditampilkan di header respons HTTP Content-Type. Namun, terlepas dari jenis media, Media CDN memprioritaskan header Cache-Control atau Expires eksplisit dalam respons origin.
Tabel berikut mencantumkan jenis MIME yang dapat di-cache secara otomatis
dengan mode cache CACHE_ALL_STATIC.
Respons tidak di-cache secara otomatis jika tidak memiliki header respons Content-Type dengan nilai yang cocok dengan nilai berikut. Anda harus memastikan
bahwa respons menetapkan perintah cache yang valid, atau
Anda harus menggunakan mode cache FORCE_CACHE_ALL untuk meng-cache respons tanpa syarat.
| Kategori | Jenis MIME |
|---|---|
| Aset web | text/css text/ecmascript text/javascript application/javascript |
| Font | Content-Type apa pun yang cocok dengan font/* |
| Gambar | Content-Type apa pun yang cocok dengan image/* |
| Video | Content-Type apa pun yang cocok dengan video/* |
| Audio | Content-Type apa pun yang cocok dengan audio/* |
| Jenis dokumen yang diformat | application/pdf and application/postscript |
Perhatikan hal berikut:
- Software server web asal Anda harus menetapkan
Content-Typeuntuk setiap respons. Banyak server web yang otomatis menetapkan headerContent-Type, termasuk NGINX, Varnish, dan Apache. - Cloud Storage akan menyetel header
Content-Typesecara otomatis saat upload saat Anda menggunakan konsol Google Cloud atau gcloud CLI untuk mengupload konten. - Cloud Storage akan selalu menyediakan header
Cache-Controlke Media CDN. Jika tidak ada nilai yang dipilih secara eksplisit, nilai default akan dikirim. Akibatnya, semua respons Cloud Storage yang berhasil akan di-cache sesuai dengan nilai default Cloud Storage, kecuali jika Anda secara eksplisit menyesuaikan metadata kontrol cache untuk objek di Cloud Storage atau menggunakan modeFORCE_CACHE_ALLuntuk mengganti nilai yang dikirim oleh Cloud Storage.
Jika suatu respons dapat di-cache berdasarkan jenis MIME-nya, tetapi memiliki perintah respons Cache-Control dari private atau no-store atau header Set-Cookie, respons tersebut tidak akan di-cache.
Jenis media lainnya, seperti HTML (text/html) dan JSON
(application/json), tidak di-cache secara default. Jenis respons ini biasanya bersifat dinamis (per pengguna), dan juga tidak cocok untuk arsitektur Media CDN. Sebaiknya gunakan
Cloud CDN untuk menayangkan aset web dan untuk menyimpan respons API dalam cache.
Mengonfigurasi TTL cache
Penggantian time to live (TTL) memungkinkan Anda menetapkan nilai TTL default untuk konten yang di-cache dan mengganti nilai TTL yang ditetapkan dalam direktif kontrol cache max-age dan s-maxage (atau header Expires) yang ditetapkan oleh server asal Anda.
TTL, baik yang ditetapkan oleh penggantian maupun dengan menggunakan direktif cache, bersifat optimis. Konten yang jarang diakses atau tidak populer dapat dikeluarkan dari cache sebelum TTL tercapai.
Tabel berikut menunjukkan tiga setelan TTL.
| Setelan | Default | Minimum | Maksimum | Deskripsi | Mode cache yang berlaku |
|---|---|---|---|---|---|
| Default TTL | 1 jam (3.600 detik) |
0 detik | 1 tahun (31.536.000 detik) |
TTL yang akan ditetapkan saat server asal belum menentukan header Jika server asal menentukan header Saat menggunakan |
|
| Max TTL | 1 hari (86400 detik) |
0 detik | 1 tahun (31.536.000 detik) |
Untuk respons yang dapat di-cache, TTL maksimum yang diizinkan. Nilai yang lebih besar dari
nilai ini dibatasi pada nilai maxTtl.
|
CACHE_ALL_STATIC |
| Client TTL | Tidak ditetapkan secara default. | 0 detik | 1 hari (86400 detik) |
Untuk respons yang dapat di-cache, TTL maksimum yang diizinkan dalam respons hilir (yang ditampilkan ke klien) jika ini perlu berbeda dari nilai TTL lainnya. |
|
Menetapkan nilai TTL ke nol (0 detik) menyebabkan setiap permintaan divalidasi ulang dengan asal sebelum respons ditayangkan dan meningkatkan beban ke asal jika ditetapkan terlalu luas.
Jika mode cache disetel ke Use Origin Headers, setelan TTL tidak dapat
dikonfigurasi karena Media CDN mengandalkan server asal untuk menentukan
perilaku.
Catatan:
- Nilai TTL maks harus selalu lebih besar daripada (atau sama dengan) nilai TTL default.
- Nilai TTL klien harus selalu lebih kecil dari (atau sama dengan) nilai TTL maks.
- Saat Media CDN mengganti nilai TTL server asal, header
Cache-Controlke klien juga mencerminkan nilai tersebut. - Jika origin menetapkan header
Expiresdan Media CDN mengganti TTL efektif (berdasarkan stempel waktu), headerExpiresakan diganti dengan headerCache-Controldalam respons downstream ke klien.
Caching negatif
Caching negatif menentukan cara kode status HTTP yang tidak berhasil (selain 2xx) di-cache oleh Media CDN.
Dengan demikian, Anda dapat menyimpan respons error seperti pengalihan (HTTP 301 dan 308) dan respons tidak ditemukan (HTTP 404) lebih dekat dengan pengguna, serta mengurangi beban origin secara lebih luas jika respons tidak mungkin berubah dan dapat di-cache.
Secara default, caching negatif dinonaktifkan. Tabel berikut menunjukkan nilai default untuk setiap kode status saat cache negatif diaktifkan dan negativeCachingPolicy tidak digunakan.
| Kode status | Frasa alasan | TTL |
|---|---|---|
| HTTP 300 | Multiple Choices | 10 menit |
| HTTP 301 dan HTTP 308 | Permanent Redirect | 10 menit |
| HTTP 404 | Tidak Ditemukan | 120 detik |
| HTTP 405 | Metode Tidak Ditemukan | 60 detik |
| HTTP 410 | Gone | 120 detik |
| HTTP 451 | Tidak Tersedia karena Alasan Hukum | 120 detik |
| HTTP 501 | Not Implemented | 60 detik |
Set default kode caching negatif cocok dengan kode status yang dapat di-cache secara heuristik yang dijelaskan dalam HTTP RFC 9110, dengan pengecualian berikut:
- Kode HTTP 414 (URI Terlalu Panjang) tidak didukung untuk penyimpanan ke cache, guna menghindari keracunan cache.
- Kode HTTP 451 (Tidak Tersedia karena Alasan Hukum) didukung untuk penyimpanan cache, seperti yang dijelaskan dalam HTTP RFC 7725.
Jika perlu mengonfigurasi TTL per kode status sendiri, dan mengganti perilaku default, Anda dapat mengonfigurasi cdnPolicy.negativeCachingPolicy. Dengan demikian, Anda dapat menetapkan TTL untuk kode status yang diizinkan oleh Media CDN: 300, 301, 302, 307, 308, 400, 403, 404, 405, 410, 451, 500, 501, 502, 503, dan 504.
Misalnya, untuk menetapkan TTL singkat selama 5 detik untuk respons HTTP 404 (Not Found), dan TTL 10 detik untuk respons HTTP 405 (Method Not Allowed), gunakan definisi YAML berikut di setiap rute yang berlaku:
cdnPolicy: negativeCaching: true negativeCachingPolicy: "404": 5s "405": 10s # other status codes to apply TTLs for
Untuk mencegah keracunan cache, sebaiknya jangan aktifkan caching untuk kode status 400 (Permintaan Buruk) atau 403 (Dilarang). Pastikan server asal Anda menampilkan salah satu kode sebagai hasil dari pemeriksaan hanya komponen permintaan yang disertakan dalam kunci cache. Keracunan cache dapat terjadi, misalnya, saat server asal merespons dengan respons error 403 tanpa header Authorization yang benar. Dalam hal ini, menyimpan respons error 403 dalam cache akan menyebabkan Media CDN menayangkan respons error 403 untuk semua permintaan berikutnya hingga TTL berakhir, meskipun permintaan memiliki header Authorization yang benar.
Untuk menonaktifkan caching negatif:
- Untuk menonaktifkan perilaku caching negatif default, tetapkan
cdnPolicy.negativeCaching: falsepada rute. Perhatikan bahwa respons server asal dengan perintah cache yang valid dan kode status yang dapat di-cache masih di-cache. - Untuk mencegah caching negatif untuk kode status tertentu, tetapi tetap mematuhi
petunjuk cache asal, hapus kode status
(
cdnPolicy.negativeCachingPolicy[].code) dalam definisinegativeCachingPolicyAnda. - Untuk mengabaikan secara eksplisit perintah cache origin untuk kode status
tertentu, tetapkan
cdnPolicy.negativeCachingPolicy[].ttlke0(nol) untuk kode status tersebut.
Catatan:
- Jika
negativeCachingdiaktifkan pada rute, dan respons menentukan perintah cache yang valid, perintah cache dalam respons akan diprioritaskan. - Jika Anda mengonfigurasi
negativeCachingPolicyeksplisit, dan ada TTL yang ditentukan untuk kode status tertentu, TTL yang ditentukan dalam kebijakan akan selalu digunakan. - Nilai maksimum untuk TTL yang ditetapkan oleh
negativeCachingPolicyadalah 1.800 detik (30 menit), tetapi direktif cache server asal dengan TTL yang lebih tinggi akan dipatuhi. - Jika mode cache dikonfigurasi sebagai
FORCE_CACHE_ALL, direktif server asal akan diabaikan dalam semua kasus.
Perintah kontrol cache
Perilaku Media CDN terkait
direktif Cache-Control
dijelaskan di sini.
Jika perintah tidak berlaku untuk permintaan atau respons, seperti
only-if-cached (perintah khusus klien), maka "T/A" akan ditandai di kolom tersebut.
| Perintah | Permintaan | Respons |
|---|---|---|
no-cache |
Perintah permintaan no-cache akan diabaikan untuk mencegah klien
berpotensi memulai atau memaksa validasi ulang ke server asal. |
Respons dengan Hal ini dapat diganti per rute dengan mode cache
|
no-store |
Respons terhadap permintaan dengan no-store tidak di-cache. |
Respons dengan Hal ini dapat diganti per rute dengan mode cache
|
public |
T/A | Respons dengan perintah Saat menggunakan cache |
private |
T/A | Respons dengan perintah Hal ini dapat diganti per rute dengan mode cache
Gunakan |
max-age=SECONDS |
Perintah permintaan max-age diabaikan. Respons yang di-cache akan ditampilkan seolah-olah header ini tidak disertakan dalam permintaan. | Respons dengan perintah max-age akan di-cache hingga
SECONDS yang ditentukan. |
s-maxage=SECONDS |
T/A | Respons dengan perintah Jika Perhatikan bahwa |
min-fresh=SECONDS |
Perintah permintaan min-fresh akan diabaikan. Respons yang di-cache akan ditampilkan seolah-olah header ini tidak disertakan dalam permintaan. |
T/A |
max-stale=SECONDS |
Perintah permintaan Respons yang di-cache akan ditampilkan seolah-olah header ini tidak disertakan dalam permintaan. |
T/A |
stale-while-revalidate=SECONDS |
T/A | Tidak ada efeknya. Perintah ini akan diteruskan ke klien dalam respons. |
stale-if-error=SECONDS |
Perintah permintaan stale-if-error akan diabaikan. Respons yang di-cache akan ditampilkan seolah-olah header ini tidak disertakan dalam permintaan. |
Tidak ada efeknya. Perintah ini akan diteruskan ke klien dalam respons. |
must-revalidate |
T/A | Respons dengan |
proxy-revalidate |
T/A | Respons dengan |
immutable |
T/A | Tidak ada efeknya. Perintah ini akan diteruskan ke klien dalam respons. |
no-transform |
T/A | Tidak ada transformasi yang diterapkan oleh Media CDN. |
only-if-cached |
Perintah permintaan only-if-cached akan diabaikan. Respons yang di-cache akan ditampilkan seolah-olah header ini tidak disertakan dalam permintaan. |
T/A |
Jika memungkinkan, Media CDN akan mematuhi RFC (HTTP RFC 7234), tetapi lebih memilih mengoptimalkan pengurangan beban cache dan meminimalkan dampak yang dapat ditimbulkan klien terhadap rasio cache ditemukan dan beban server asal secara keseluruhan.
Untuk respons yang menggunakan header Expires HTTP/1.1:
- Nilai header
Expiresharus berupa HTTP-date yang valid seperti yang ditentukan dalam RFC 7231. - Nilai tanggal di masa lalu, tanggal yang tidak valid, atau nilai
0menunjukkan bahwa konten telah habis masa berlakunya dan memerlukan validasi ulang. - Media CDN mengabaikan header
Expiresjika headerCache-Controlada dalam respons.
Header Pragma HTTP/1.0, jika ada dalam respons, akan diabaikan dan diteruskan apa adanya ke klien.
Kunci cache
Anda dapat mengurangi frekuensi Media CDN perlu menghubungi origin Anda dengan mempertimbangkan apa yang secara unik mengidentifikasi permintaan, dan menghapus komponen yang mungkin sering berubah di antara permintaan. Kumpulan komponen permintaan sering disebut sebagai 'kunci cache'.
Bagian berikut menjelaskan cara mengonfigurasi kunci cache.
Komponen kunci cache
Kunci cache adalah kumpulan parameter permintaan (seperti host, jalur, dan parameter kueri) yang dirujuk oleh objek yang di-cache.
Secara default, kunci cache untuk layanan Edge Cache mencakup host permintaan, jalur dan parameter kueri dari permintaan, serta dicakup ke EdgeCacheService tertentu.
| Komponen | Disertakan secara default? | Detail |
|---|---|---|
| Protokol | Tidak | Permintaan melalui HTTP dan HTTPS merujuk ke objek yang sama yang di-cache. Jika Anda ingin menampilkan respons yang berbeda untuk permintaan http: dan https:,
tetapkan |
| Host | Ya | Host yang berbeda tidak mereferensikan objek yang di-cache yang sama. Jika Anda memiliki beberapa nama host yang diarahkan ke EdgeCacheService yang sama, dan
nama host tersebut menayangkan konten yang sama, tetapkan
|
| Path | Ya | Selalu disertakan dalam kunci cache dan tidak dapat dihapus. Jalur adalah representasi minimum objek dalam cache. |
| Parameter kueri | Ya | Jika parameter kueri tidak membedakan antara respons yang berbeda,
tetapkan Jika hanya beberapa parameter kueri yang harus disertakan dalam kunci cache, tetapkan
|
| Header | Tidak | Tetapkan Menentukan beberapa header yang digabungkan untuk memiliki rentang nilai yang besar (misalnya, nilai header gabungan mengidentifikasi satu pengguna) akan menurunkan rasio hit cache secara drastis dan dapat menyebabkan rasio penggantian yang lebih tinggi dan penurunan performa. |
| Cookie | Tidak | Tetapkan Menentukan beberapa cookie yang digabungkan untuk memiliki rentang nilai yang besar (misalnya, nilai cookie gabungan mengidentifikasi satu pengguna) akan menurunkan rasio hit cache secara drastis dan dapat menyebabkan rasio penghapusan yang lebih tinggi dan penurunan performa. |
Perhatikan hal berikut:
- Kunci cache tidak dilampirkan ke asal yang dikonfigurasi, sehingga Anda dapat memperbarui konfigurasi asal (atau mengganti asal sepenuhnya) tanpa risiko "mengosongkan" cache (misalnya, saat memigrasikan penyimpanan asal antar-penyedia).
- Kunci cache dibatasi ke EdgeCacheService. EdgeCacheService yang berbeda memiliki namespace cache yang berbeda, yang mencegah Anda secara tidak sengaja menyimpan objek dalam cache antara lingkungan produksi, staging, dan pengujian lainnya, meskipun host, jalur, atau komponen kunci cache lainnya cocok. Menghapus EdgeCacheService secara efektif akan menginvalidasi semua objek yang di-cache untuk layanan tersebut.
- Kunci cache tidak dicakup ke rute individual. Beberapa rute dapat merujuk ke kunci cache yang sama, terutama jika rute tersebut cocok dengan komponen yang tidak disertakan dalam kunci cache, seperti header permintaan atau parameter yang dikecualikan. Hal ini dapat berguna jika Anda ingin beberapa rute berbagi cache yang sama, tetapi menampilkan header respons atau konfigurasi CORS yang berbeda.
- Kunci cache tidak menyertakan konfigurasi penulisan ulang URL—misalnya, kunci cache didasarkan pada permintaan yang terlihat oleh pengguna, bukan permintaan "ditulis ulang" terakhir.
- Jika permintaan bertanda tangan dikonfigurasi pada rute, atribut bertanda tangan tidak disertakan dalam kunci cache. Permintaan diperlakukan seolah-olah parameter kueri atau komponen jalur (yang ditandatangani), yang dimulai dengan
edge-cache-tokendan berakhir di pemisah jalur berikutnya ("/"), bukan bagian dari URL.
Menyertakan atau mengecualikan parameter kueri
Anda dapat menyertakan atau mengecualikan parameter kueri tertentu dari kunci cache dengan menambahkan
nama parameter ke konfigurasi kunci cache includedQueryParameters atau excludedQueryParameters
pada rute tertentu.
Misalnya, untuk menyertakan parameter kueri contentID dan country serta
mengabaikan semua parameter lainnya dari kunci cache: