Aturan cache mengontrol berapa lama resource tetap di-cache pada POP CDN (points of presence) sebelum diambil ulang dari server origin Anda. Menetapkan TTL (time to live) yang tepat menyeimbangkan kesegaran konten, kinerja akselerasi, dan biaya lalu lintas origin.
Cara kerja
Saat permintaan tiba di POP, CDN mengevaluasi apakah akan menyajikan respons dari cache atau mengambil dari server origin Anda. Keputusan tersebut mengikuti urutan prioritas empat tingkat:
| Priority | Condition | Behavior |
|---|---|---|
| 1. Origin no-cache headers | Origin merespons dengan Cache-Control: no-cache, no-store, atau max-age=0, atau Pragma: no-cache | POP tidak menyimpan resource dalam cache. Untuk mengabaikan perilaku ini, aktifkan Ignore Origin No-Cache Header di aturan cache Anda. |
| 2. Console cache rules | Sebuah aturan cocok dengan path permintaan atau ekstensi file. | CDN menggunakan TTL yang dikonfigurasi. Aturan dengan bobot lebih tinggi memiliki prioritas lebih besar; jika bobotnya sama, aturan yang dibuat lebih awal berlaku. Setelah sebuah aturan cocok, tidak ada aturan lain yang dievaluasi. |
| 3. Origin cache headers | Tidak ada aturan Konsol yang cocok, atau aturan yang cocok memiliki Honor Origin TTL diaktifkan. | CDN mengikuti header cache HTTP dari origin, dievaluasi dalam urutan berikut: Cache-Control (s-maxage terlebih dahulu, lalu max-age) → Expires → Last-Modified (TTL = (waktu saat ini − Last-Modified) × 0,1, dibatasi antara 10–3.600 detik) → ETag (TTL default: 10 detik). |
| 4. No cache | Tidak ada aturan Konsol yang cocok dan tidak ada header cache dari origin. | POP tidak menyimpan resource dalam cache. |
Kebijakan cache hanya berlaku untuk respons origin dengan kode status 200, 203, 206, 300, 301, 308, atau 410. Untuk menyimpan respons dengan kode status lain (seperti 404) dalam cache, konfigurasikan hal ini di halaman Cache Settings.
Interaksi antara Honor Origin TTL dan Ignore Origin No-Cache Header
Kedua pengaturan ini bekerja bersama untuk mengontrol cara CDN menangani sinyal cache dari origin. Gunakan tabel berikut untuk menentukan perilaku hasil dari setiap kombinasi:
| Honor Origin TTL | Ignore Origin No-Cache Header | Perilaku |
|---|---|---|
| Dinonaktifkan (default) | Dinonaktifkan (default) | TTL aturan cache konsol digunakan. Header no-cache dari origin mencegah caching. |
| Dinonaktifkan | Diaktifkan | TTL aturan cache konsol digunakan. Header no-cache dari origin diabaikan. |
| Diaktifkan | Dinonaktifkan | Header cache dari origin memiliki prioritas lebih tinggi daripada TTL aturan konsol. Header no-cache dari origin tetap mencegah caching. |
| Diaktifkan | Diaktifkan | Header cache dari origin memiliki prioritas. Header no-cache diabaikan — resource di-cache menggunakan TTL dari origin. |
Konfigurasikan aturan cache
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Domain Alibaba Cloud CDN dengan akselerasi diaktifkan
Akses ke Konsol CDN
Tambahkan aturan cache (konsol)
Di Konsol CDN, buka halaman Domain Names dan klik Manage untuk domain target Anda.
Buka Cache > Cache Expiration, lalu klik Add.

Konfigurasikan parameter berikut:
| Parameter | Deskripsi |
|---|---|
| Type | Cakupan aturan: Directory atau File Extension. |
| Object | Path atau ekstensi yang dicocokkan. Directory: harus diawali dengan / (misalnya, /static/); satu / saja mencocokkan semua path; satu direktori per aturan. File Extension: ekstensi dipisahkan koma (misalnya, jpg,css); peka huruf besar/kecil; tidak mendukung wildcard (*). |
| Expire In | Berapa lama POP CDN menyimpan resource dalam cache. Maksimum: 3 tahun. Lihat TTL yang Direkomendasikan sebagai panduan. |
| Honor Origin TTL | Jika diaktifkan, header cache dari server origin memiliki prioritas lebih tinggi daripada TTL aturan ini. |
| Ignore Origin No-Cache Header | Jika diaktifkan, CDN mengabaikan Cache-Control: no-store, no-cache, max-age=0, dan Pragma: no-cache dari origin. Resource di-cache menggunakan TTL aturan ini. |
| Follow POP Cache Policy | Jika diaktifkan, CDN mengirim kebijakan cache efektifnya (misalnya, Cache-Control: max-age=3600) ke browser. Hal ini mengurangi permintaan berulang ke POP. |
| Force Revalidation | Hanya berlaku ketika Expire In diatur ke 0 detik. Disabled (default): file tidak di-cache; setiap permintaan diambil dari origin. Enabled: file di-cache, tetapi POP melakukan revalidasi dengan origin pada setiap permintaan. |
| Weight | Prioritas aturan, dari 1 hingga 99. Nilai lebih tinggi = prioritas lebih tinggi. Jika dua aturan memiliki bobot yang sama, aturan yang dibuat lebih awal yang digunakan. Setelah suatu aturan cocok, aturan lain tidak dievaluasi lagi. |
| Rule Condition | Mempersempit cakupan aturan menggunakan parameter permintaan (header, parameter URL). Default: Not used. Konfigurasikan kondisi lanjutan di Rule Engine. |
Klik OK untuk menyimpan aturan.
Konfigurasi melalui API
Panggil operasi BatchSetCdnDomainConfig untuk mengonfigurasi aturan cache secara batch. Lihat Cache configuration untuk parameter terkait cache.
TTL yang Direkomendasikan
| Jenis konten | Contoh | TTL yang Direkomendasikan |
|---|---|---|
| Resource statis yang jarang diperbarui | Gambar, paket instalasi, font | 1 bulan atau lebih lama |
| Resource statis yang sering diperbarui | JS, CSS | Atur berdasarkan frekuensi pembaruan Anda |
| Konten dinamis | PHP, JSP, respons API | 0 detik (tidak di-cache) |
Terapkan perubahan aturan segera
Aturan baru dan yang dimodifikasi hanya berlaku untuk resource yang di-cache setelah perubahan dilakukan. Resource yang sudah di-cache sebelumnya tetap menggunakan TTL lama hingga masa berlakunya habis secara alami.
Untuk menerapkan perubahan di seluruh jaringan segera:
Setelah memodifikasi aturan: Gunakan Purge resource untuk membersihkan cache yang ada.
Setelah menambahkan aturan baru: Gunakan Prefetch resource untuk mengisi cache sebelumnya.
Verifikasi konfigurasi
Setelah menyimpan aturan cache, periksa apakah aturan tersebut berfungsi sesuai harapan.
Jalankan perintah verifikasi
curl -I "https://your.domain.com/path/to/file.jpg"Interpretasikan header respons
| Header respons | Yang harus diperhatikan |
|---|---|
X-Cache | HIT — permintaan dilayani dari cache. MISS — resource diambil dari server origin. |
Cache-Control | Jika Client Follows CDN Cache Policy diaktifkan, header ini menampilkan direktif cache yang dikirim ke browser, seperti max-age=3600. |
X-Swift-CacheTime | Total durasi cache yang dikonfigurasi untuk resource tersebut di POP CDN, dalam detik. |
Praktik terbaik
Gunakan nama file berbasis versi untuk resource statis. Saat memperbarui file statis, beri nama baru yang mencakup versi atau hash (misalnya, style-v2.css atau style-a1b2c3d.css), lalu perbarui referensinya di HTML Anda. Perubahan ini langsung berlaku tanpa perlu purge manual dan merupakan cara paling andal untuk memastikan klien menerima konten terbaru.
Pisahkan aset dinamis dan statis. Gunakan path direktori berbeda untuk resource dinamis dan statis, lalu tetapkan masing-masing aturan cache tersendiri dengan TTL yang sesuai. Misalnya, atur TTL panjang untuk /static/ dan nonaktifkan caching untuk /api/.
Enable Follow POP Cache Policy. Ini mengirim kebijakan cache CDN ke browser melalui header respons Cache-Control, mengurangi permintaan berulang ke POP dan meningkatkan kecepatan pemuatan.
Hindari TTL yang terlalu pendek. TTL yang terlalu pendek menyebabkan pengambilan asal yang sering, sehingga meningkatkan beban dan biaya origin serta mengurangi manfaat akselerasi CDN.
Hindari TTL yang terlalu panjang. TTL yang terlalu panjang dapat mencegah klien menerima pembaruan tepat waktu. Untuk konten yang sering diperbarui, padukan TTL panjang dengan nama file berbasis versi atau gunakan fitur pembersihan cache bila diperlukan.
Mekanisme kontrol cache HTTP
Protokol HTTP menggunakan tiga mekanisme untuk mengontrol perilaku caching di POP CDN dan browser.
Caching berbasis kedaluwarsa
Server menyertakan direktif kedaluwarsa dalam respons. Resource yang di-cache dianggap segar hingga waktu tersebut dan kadaluwarsa setelahnya.
| Header | Protokol | Deskripsi | Contoh |
|---|---|---|---|
Pragma | HTTP/1.0 | Menetapkan no-cache untuk kompatibilitas mundur dengan server HTTP/1.0. | Pragma: no-cache |
Expires | HTTP/1.0 | Tanggal/waktu absolut setelah resource di-cache dianggap kadaluwarsa. Diabaikan jika Cache-Control ada. Nilai 0 menandakan resource langsung kadaluwarsa. | Expires: Wed, 21 Oct 2022 07:28:00 GMT |
Cache-Control | HTTP/1.1 | Header caching utama untuk klien modern. Mendukung direktif untuk kontrol fleksibel. | Tidak di-cache: Cache-Control: no-cache / no-store / max-age=0. Di-cache selama 1 jam: Cache-Control: max-age=3600 |
Caching berbasis validasi
Server mengirim tag resource bersama respons awal. Pada permintaan berikutnya, klien mengirim kembali tag tersebut. Jika cocok, server mengembalikan 304 Not Modified (tanpa isi tubuh), menghemat bandwidth. Jika tidak cocok, server mengirim resource lengkap yang telah diperbarui.
| Header | Protokol | Deskripsi | Contoh |
|---|---|---|---|
Last-Modified | HTTP/1.0 | Stempel waktu modifikasi terakhir resource. | Last-Modified: Wed, 21 Oct 2015 07:28:00 GMT |
ETag | HTTP/1.1 | Pengidentifikasi unik (biasanya hash atau nomor versi) untuk versi spesifik resource. Lebih akurat daripada Last-Modified. | ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4" |