Saat titik kehadiran (POP) CDN mengambil resource dari server origin Anda, origin mengembalikan kode status HTTP. Secara default, CDN menggunakan header cache dari origin untuk menentukan apakah dan berapa lama kode status tersebut akan di-cache. TTL kode status memungkinkan Anda mengganti perilaku ini: tetapkan durasi cache khusus per kode status sehingga POP dapat langsung melayani respons tersebut ke klien tanpa melakukan pengambilan asal baru hingga TTL-nya kedaluwarsa.
Cara kerja
Sebuah POP menerima permintaan untuk resource yang tidak ada dalam cache-nya. POP tersebut mengambil resource dari origin, yang mengembalikan kode status. Jika Anda telah mengonfigurasi TTL untuk kode status tersebut, POP akan menyimpannya dalam cache selama durasi yang dikonfigurasi. Selama periode tersebut, permintaan berikutnya untuk resource yang sama langsung menerima kode status dari cache—tanpa pengambilan asal. Saat TTL kedaluwarsa, permintaan berikutnya akan memicu pengambilan asal baru.
Kasus penggunaan: Sebuah file dihapus dari server origin, tetapi klien terus memintanya. Tanpa TTL yang dikonfigurasi, setiap permintaan mencapai origin dan menerima respons 404, sehingga meningkatkan beban origin. Setelah Anda mengonfigurasi TTL 10 detik untuk kode 404, POP menyimpan respons 404 pertama dalam cache dan melayaninya langsung selama 10 detik berikutnya.
Perilaku caching default
Tabel berikut merangkum cara CDN menangani kode status abnormal ketika TTL tidak dikonfigurasi di Konsol dan origin tidak mengembalikan header Set-Cookie.
| Kelompok kode status | Perilaku default (tanpa konfigurasi di Konsol, tanpa Set-Cookie) |
|---|---|
| 204, 305, 404, 405, 414, 424, 429, 500, 501, 502, 503, 504 | Di-cache berdasarkan header Pragma, Cache-Control, atau Expires dari origin. Jika tidak ada header tersebut, di-cache selama 1 detik. |
| 302, 307, 403 | Di-cache berdasarkan header Pragma, Cache-Control, atau Expires dari origin. Jika tidak ada header tersebut, tidak di-cache. |
| 304 | Tidak pernah di-cache. Anda tidak dapat mengonfigurasi TTL untuk kode status ini. |
| Kode abnormal lainnya (misalnya, 400) | Tidak di-cache kecuali Anda mengonfigurasi TTL di Konsol. |
Jika origin mengembalikan header Set-Cookie, CDN tidak meng-cache respons tersebut terlepas dari kode status atau konfigurasi di Konsol.Aturan cache untuk kode status abnormal
Kode status 204, 305, 404, 405, 414, 424, 429, 500, 501, 502, 503, 504
Jika origin mengembalikan header respons
set-cookie, CDN tidak meng-cache respons tersebut.Jika origin tidak mengembalikan header Set-Cookie, respons di-cache selama durasi yang Anda konfigurasikan di Konsol CDN. Untuk detail tentang interaksi beberapa aturan, lihat Prioritas beberapa aturan.
Jika tidak ada header Set-Cookie dan TTL tidak dikonfigurasi di Konsol, respons di-cache berdasarkan header respons
Pragma,Cache-Control, atauExpiresdari origin.Jika tidak satu pun kondisi di atas berlaku — tidak ada Set-Cookie, tidak ada konfigurasi di Konsol, dan tidak ada header
Pragma,Cache-Control, atauExpires— respons di-cache selama 1 detik.
Kode status 302, 307, 403
Jika origin mengembalikan header respons
set-cookie, CDN tidak meng-cache respons tersebut.Jika origin tidak mengembalikan header Set-Cookie, respons di-cache selama durasi yang Anda konfigurasikan di Konsol CDN.
Jika tidak ada header Set-Cookie dan TTL tidak dikonfigurasi di Konsol, respons di-cache berdasarkan header respons
Pragma,Cache-Control, atauExpiresdari origin.Jika tidak satu pun kondisi di atas berlaku, respons tidak di-cache (berbeda dengan kelompok sebelumnya, tidak ada fallback 1 detik).
Kode status 304
CDN tidak meng-cache respons 304. Anda tidak dapat mengonfigurasi TTL untuk kode status ini.
Kode status abnormal lainnya (misalnya, 400)
Jika origin mengembalikan header respons
set-cookie, CDN tidak meng-cache respons tersebut.Jika origin tidak mengembalikan header Set-Cookie, respons di-cache selama durasi yang Anda konfigurasikan di Konsol CDN.
Dalam semua skenario lainnya, respons tidak di-cache.
Perilaku range origin fetch
Dalam range origin fetch, origin membagi file besar menjadi shard-shard kecil dan mengembalikannya ke POP secara berurutan. Jika POP menerima kode status bukan 206 dari origin selama range origin fetch, semua shard yang sebelumnya di-cache untuk file tersebut akan dihapus.
Contoh: Sebuah file dibagi menjadi 10 shard. POP telah menyimpan lima shard dalam cache. Saat POP meminta shard keenam, origin mengembalikan kode status 5xx. CDN menghapus kelima shard yang sebelumnya di-cache.
Timeout pada origin fetch tidak menyebabkan shard yang di-cache dihapus.
Prioritas beberapa aturan
Saat sebuah permintaan cocok dengan lebih dari satu aturan cache untuk kode status yang sama, hanya satu aturan yang berlaku. CDN menentukan aturan yang efektif sebagai berikut:
Jenis memiliki prioritas lebih tinggi: Aturan File Extension memiliki prioritas lebih tinggi daripada aturan Directory.
Waktu pembuatan sebagai penentu seri: Jika beberapa aturan memiliki jenis yang sama, aturan yang dibuat lebih dulu (ditampilkan lebih tinggi dalam daftar aturan) yang berlaku.
Urutan evaluasi adalah: File Extension > Directory, dan untuk jenis yang sama, older > newer.
Buat aturan cache kode status
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Nama domain CDN Alibaba Cloud yang telah dikonfigurasi dan aktif
Akses ke Konsol CDN
Langkah-langkah
Masuk ke Konsol CDN.
Di panel navigasi kiri, klik Domain Names.
Di halaman Domain Names, temukan nama domain target dan klik Manage di kolom Actions.
Di panel navigasi domain, klik Cache.
Klik tab Status Code TTL.
Klik Create Rule. Konfigurasikan parameter berikut:
Parameter Deskripsi Type Pilih Directory atau File Extension. Aturan File Extension memiliki prioritas lebih tinggi daripada aturan Directory. Object Directory: Masukkan path lengkap satu direktori. Path harus diawali dengan garis miring ( /). Contohnya,/directory/aaa. File Extension: Masukkan satu atau beberapa ekstensi file yang dipisahkan koma. Contohnya,jpg,txt. Aturan bersifat case-sensitive:jpgdanJPGdianggap sebagai ekstensi berbeda, dan aturan berikutnya untuk ekstensi yang sama (dengan huruf kapital berbeda) akan menimpa aturan sebelumnya. Tanda bintang (*) tidak didukung.Expire In Tentukan kode status dan durasi cache-nya. Durasi maksimum adalah tiga tahun. Satuan dalam detik. Pisahkan beberapa kode status dengan koma. Untuk kode 2xx dan 3xx, hanya tentukan kode individual (misalnya, 201=10). Pola wildcard seperti2xx=12tidak didukung untuk kode 2xx dan 3xx. Untuk kode 4xx dan 5xx, baik kode individual (misalnya,401=10) maupun pola wildcard (misalnya,4xx=12) didukung.Honor Origin TTL Jika diaktifkan dan origin mengembalikan header Cache-ControlatauPragma, kebijakan cache origin akan menggantikan TTL yang dikonfigurasi.Ignore Origin No-Cache Header Jika diaktifkan, POP CDN mengabaikan header-header berikut dari origin: Cache-Control: no-store,Cache-Control: no-cache,Cache-Control: max-age=0, danPragma: no-cache.Follow POP Cache Policy Jika diaktifkan, POP CDN mengembalikan kebijakan cache efektif akhir ke klien. Force Revalidation Hanya berlaku saat durasi cache diatur ke 0. Shutdown (default): Node CDN tidak meng-cache konten. Setiap permintaan melakukan pengambilan asal. Enabled: Node CDN meng-cache konten, tetapi setiap permintaan melakukan pengambilan asal untuk memvalidasi ulang konten yang di-cache sebelum melayaninya.
Klik OK.
Aturan tersebut muncul dalam daftar di tab Expire In. Untuk memperbarui atau menghapus aturan, klik Modify atau Delete pada baris aturan tersebut.
Contoh konfigurasi
Contoh 1: Aturan direktori

Aturan ini menargetkan direktori /directory/aaa. Untuk permintaan dalam direktori ini, semua kode status 4xx di-cache selama 10 detik dan kode status 201 di-cache selama 15 detik. Selama periode tersebut, POP merespons langsung tanpa melakukan pengambilan asal. Setelah durasi cache kedaluwarsa, permintaan berikutnya akan memicu pengambilan asal.
Contoh 2: Aturan ekstensi file

Aturan ini menargetkan file .jpg dan .txt. Untuk file-file ini, kode status 403 di-cache selama 10 detik dan kode status 404 di-cache selama 15 detik.
Contoh 3: Prioritas saat jenis aturan berbeda

Aturan direktori dan aturan ekstensi file dikonfigurasi dengan TTL berbeda untuk kode status 404. Seorang klien meminta http://example.com/directory/aaa/test.jpg. Resource tidak di-cache. POP mengambilnya dari origin, yang mengembalikan 404. Permintaan ini cocok dengan kedua aturan. Karena File Extension > Directory, aturan ekstensi file yang berlaku, dan kode status 404 di-cache selama 20 detik.
Contoh 4: Prioritas saat jenis aturan sama

Aturan Direktori 1 menargetkan /directory. Aturan Direktori 2 menargetkan /directory/aaa. Keduanya memberikan TTL berbeda untuk kode status 404. Seorang klien meminta http://example.com/directory/aaa/test.jpg. Permintaan ini cocok dengan kedua aturan direktori. Karena lebih lama > lebih baru untuk aturan dengan jenis yang sama, Aturan Direktori 1 (dibuat lebih dulu) yang berlaku, dan kode status 404 di-cache selama 15 detik.
Referensi API
Untuk mengonfigurasi TTL kode status menggunakan API, gunakan BatchSetCdnDomainConfig.