Topik ini menjawab pertanyaan umum terkait caching.
Bagaimana cara menentukan apakah suatu sumber daya di-cache?
Bagaimana cara mengatasi masalah rendahnya rasio hit cache akibat parameter variabel dalam URL?
Bagaimana cara mendiagnosis masalah rendahnya rasio hit cache?
Bagaimana cara menerapkan pengaturan cache ke semua direktori?
Mengapa konten yang diambil dari POP berbeda dengan konten yang dikembalikan dari server asal?
Bagaimana cara mengonfigurasi CORS menggunakan header respons HTTP di CDN dan catatan penggunaannya
Apa perbedaan antara header respons keluar dan header respons masuk?
Apa mekanisme untuk membersihkan cache?
Jika sebuah sumber daya yang di-cache pada CDN POP jarang diakses (sumber daya yang sama pada CDN POP diakses dengan frekuensi rendah), sumber daya tersebut dapat ditimpa oleh sumber daya lain yang sering diakses pada CDN POP sebelum sumber daya tersebut kedaluwarsa.
Apa aturan cache default?
Setelah CDN POP menerima file dari server asal, POP memproses file berdasarkan aturan cache berikut. Angka yang lebih kecil menunjukkan prioritas yang lebih tinggi.
Jika server asal merespons dengan header
pragma:no-cache,cache-control:no-cache,no-store, ataumax-age=0, CDN tidak akan menyimpan cache sumber daya tersebut.Aturan cache yang Anda konfigurasi di konsol CDN, seperti TTL cache atau waktu kedaluwarsa kode status.
CatatanJika permintaan ke CDN cocok dengan beberapa aturan, hanya satu aturan yang berlaku. Prioritas ditentukan pertama berdasarkan bobot, kemudian berdasarkan waktu pembuatan aturan.
Jika Anda membuat beberapa aturan cache, Anda dapat menetapkan bobot yang berbeda untuk setiap aturan untuk mengontrol prioritas eksekusinya. Bobot yang lebih besar menunjukkan prioritas yang lebih tinggi.
Jika beberapa aturan cache memiliki bobot yang sama, aturan yang dibuat pertama kali memiliki prioritas tertinggi, terlepas dari jenis aturan.
Header terkait cache dalam respons dari server asal. Prioritas header diurutkan secara menurun:
cache-control>expires>last-modified>ETag.Respons server asal menggunakan header
cache-controluntuk menetapkan waktu kedaluwarsa. Header harus berisi direktifmax-ageataus-maxage, dan nilai darimax-ageataus-maxageharus lebih besar dari 0. Contoh: cache-control: max-age=3600. Jika baikmax-agemaupuns-maxageada, nilai daris-maxageyang berlaku.Header respons
expiresdari server asal menentukan waktu kedaluwarsa. Contoh: `expires:Tue, 25 Nov 2031 17:25:43 GMT`.Jika respons dari server asal berisi header
ETagataulast-modified, durasi cache dihitung berdasarkan aturan berikut:Jika header
last-modifiedada, durasi cache dihitung menggunakan rumus: (Waktu Saat Ini -last-modified) × 0.1. Hasilnya digunakan sebagai durasi cache jika nilainya antara 10 detik dan 3.600 detik. Jika hasilnya kurang dari 10 detik, durasi cache diatur menjadi 10 detik. Jika hasilnya lebih dari 3.600 detik, durasi cache diatur menjadi 3.600 detik.Jika hanya header
ETagyang ada, durasi cache adalah 10 detik.
Jika respons dari server asal tidak berisi header terkait cache berikut, sumber daya tersebut tidak disimpan cache secara default:
ETag,last-modified,cache-control, atauexpires.
Bagaimana cara menentukan apakah suatu sumber daya di-cache?
Anda dapat memeriksa header respons HTTP untuk menentukan apakah CDN menyimpan file dalam cache.
X-Cache: menentukan apakah permintaan mengenai cache. Nilai header X-Cache HIT berarti bahwa permintaan mengenai cache. Jika nilainya adalah MISS atau header tidak ada, permintaan tidak mengenai cache.Age: menentukan jumlah waktu file disimpan dalam cache pada titik kehadiran (POPs). Unit: detik. Respons HTTP mencakup headerAgehanya jika file disimpan dalam cache pada POPs. Jika file tidak disimpan dalam cache setelah file diperbarui atau dibersihkan, respons HTTP tidak mencakup headerAge. Jika nilai headerAgeadalah 0, file disimpan dalam cache pada POPs tetapi cache telah kedaluwarsa dan tidak dapat digunakan. Oleh karena itu, permintaan dialihkan ke server asal.X-Swift-CacheTime: menentukan nilai TTL file yang disimpan dalam cache pada POPs. Sisa TTL sebelum file diperbarui =X-Swift-CacheTime-Age.X-Swift-SaveTime: menentukan waktu ketika file pertama kali disimpan dalam cache pada POPs. Waktu dalam GMT.
Untuk melihat header respons HTTP dan menentukan apakah file disimpan dalam cache pada POPs, Anda dapat menggunakan salah satu metode berikut:
Metode 1: Gunakan alat pengembang browser, seperti Chrome DevTools

Metode 2: Jalankan perintah curl untuk melihat informasi caching sumber daya
curl "http://example.com/path/to/response.html" -v
Bagaimana cara mengatasi masalah rendahnya rasio hit cache akibat parameter variabel dalam URL?
Aktifkan fitur penyaringan parameter CDN untuk mengatasi masalah tersebut. Untuk informasi lebih lanjut, lihat Rendahnya rasio hit cache akibat parameter variabel dalam URL.
Bagaimana cara mengonfigurasi POP agar tidak menyimpan cache sumber daya tetapi mengambil sumber daya dari server asal?
Konfigurasikan nilai TTL berdasarkan direktori, jalur, dan tipe file sumber daya yang tidak ingin Anda simpan dalam cache. Bagian berikut menjelaskan parameter:
Type: Pilih Directory atau File Extension.
Object: Masukkan direktori atau ekstensi nama file sumber daya yang tidak ingin Anda simpan dalam cache. Misalnya, Anda dapat menentukan file dinamis tipe
php,jsp,aspatau semua file dalam direktoriadmin.Expire In: Atur parameter ini ke 0, yang menentukan bahwa sumber daya tipe atau dalam direktori tersebut tidak disimpan dalam cache.
Bobot: Konfigurasikan bobot aturan berdasarkan kebutuhan bisnis Anda. Bobot yang lebih tinggi menunjukkan prioritas yang lebih tinggi untuk menentukan hit cache.
Untuk informasi lebih lanjut, lihat Konfigurasikan TTL cache.

Mengapa sumber daya yang diambil tidak diperbarui meskipun saya mengatur TTL untuk sumber daya menjadi 0 di konsol?
Jika Anda mengatur parameter Expire In ke 0 untuk sumber daya tertentu di konsol CDN, sumber daya tersebut tidak disimpan dalam cache pada POPs, dan permintaan untuk sumber daya tersebut dialihkan ke server asal. Namun, sumber daya yang diambil mungkin tidak diperbarui karena alasan berikut:
Cache browser: Browser pengguna mungkin telah menyimpan versi lama sumber daya. Kami sarankan Anda membersihkan cache browser atau menggunakan mode Penyamaran browser.
Penundaan sebelum aturan cache berlaku: Setelah Anda mengatur parameter Expire In ke 0, mungkin diperlukan waktu bagi pengaturan untuk diterapkan di semua POPs. Selain itu, jika POPs belum mendeteksi perubahan dalam aturan cache, POPs mungkin masih mengembalikan versi lama sumber daya yang disimpan dalam cache.
Cache tidak diperbarui pada server asal: Server asal juga mungkin memiliki mekanisme caching. Jika sumber daya yang disimpan dalam cache pada server asal tidak diperbarui, POPs mungkin mengambil versi lama sumber daya dari server asal.
Penundaan dalam membersihkan cache pada POPs: Jika POPs telah menyimpan cache sumber daya sebelum Anda mengonfigurasi aturan cache, mungkin diperlukan waktu untuk membersihkan sumber daya yang disimpan dalam cache dari semua POPs meskipun Anda mengatur parameter Expire In ke 0. Anda dapat secara manual memperbarui cache untuk memastikan bahwa versi terbaru sumber daya diambil dari server asal. Untuk informasi lebih lanjut, lihat Perbarui sumber daya secara manual.
Apakah POPs memperbarui sumber daya yang disimpan dalam cache secara real-time setelah sumber daya tersebut dimodifikasi di server asal?
POPs tidak memperbarui sumber daya yang disimpan dalam cache secara real-time setelah sumber daya tersebut dimodifikasi di server asal. Dalam kebanyakan kasus, POPs menentukan kapan file yang disimpan dalam cache kedaluwarsa atau diperbarui berdasarkan aturan cache yang dikonfigurasi setelah file disimpan dalam cache pada POPs.
POPs memperbarui sumber daya berdasarkan parameter Expire In yang Anda konfigurasikan di konsol. Jika sumber daya di server asal diperbarui, POPs tidak memperbarui sumber daya tersebut hingga sumber daya yang disimpan dalam cache kedaluwarsa. Untuk informasi lebih lanjut, lihat Konfigurasikan TTL cache.
Anda dapat secara manual memperbarui cache. Permintaan berikutnya untuk file dialihkan ke server asal untuk mengambil konten terbaru.
Untuk informasi tentang cara memperbarui cache secara manual menggunakan konsol CDN, lihat Perbarui sumber daya secara manual.
Untuk informasi tentang cara memperbarui cache dengan memanggil operasi, lihat RefreshObjectCaches.
Apa faktor-faktor yang mengurangi rasio hit cache?
Berikut ini adalah faktor-faktor yang mengurangi rasio hit cache. Untuk informasi lebih lanjut, lihat Tingkatkan rasio hit cache CDN.
Pembersihan cache: Operasi pembersihan cache manual atau otomatis dapat mengurangi rasio hit cache dalam jangka waktu pendek.
Lonjakan penggunaan bandwidth: Ketika lonjakan penggunaan bandwidth terjadi, sejumlah besar permintaan dialihkan ke server asal. Hal ini mengurangi rasio hit cache. Untuk informasi lebih lanjut, lihat Perbarui dan pra-ambil sumber daya.
Permintaan untuk sumber daya baru: Jika sejumlah besar permintaan untuk sumber daya baru dikirim ke POPs, permintaan dialihkan ke server asal dan rasio hit cache menurun.
Perubahan dalam aturan cache: Perubahan dalam aturan cache dapat memengaruhi rasio hit cache. Misalnya, nilai TTL atau aturan cache tidak dikonfigurasi dengan benar.
Parameter variabel dalam URL: Permintaan yang URL-nya berisi parameter variabel setelah tanda tanya (?) dianggap sebagai permintaan untuk sumber daya yang berbeda. Hal ini mengurangi rasio hit cache. Untuk informasi lebih lanjut, lihat Abaikan parameter.
Tidak ada nilai TTL yang tepat: Jika Anda tidak mengonfigurasi nilai TTL yang tepat untuk file statis yang diperbarui dengan frekuensi berbeda, sumber daya yang disimpan dalam cache mungkin kedaluwarsa sebelum waktunya. Hal ini mengurangi rasio hit cache. Untuk informasi lebih lanjut, lihat Konfigurasikan TTL cache.
Bagaimana cara mendiagnosis masalah rendahnya rasio hit cache?
Rendahnya rasio hit cache dapat menyebabkan lambatnya pemuatan konten dan meningkatkan beban pada server asal. Untuk informasi tentang cara mendiagnosis masalah rendahnya rasio hit cache, lihat Diagnosis masalah rendahnya rasio hit cache.
Bagaimana cara menerapkan pengaturan cache ke semua direktori?
Anda dapat menentukan nilai TTL untuk sumber daya di semua direktori. Saat membuat aturan cache, atur parameter Type ke Directory dan parameter Objek ke garis miring (/) untuk menentukan semua direktori. Untuk informasi lebih lanjut, lihat Konfigurasikan TTL cache.
Mengapa aturan cache tidak berlaku?
Aturan cache yang Anda konfigurasikan mungkin tidak berlaku karena alasan berikut:
Penundaan sebelum aturan berlaku: Setelah Anda membuat atau memodifikasi aturan cache, dibutuhkan waktu bagi aturan tersebut untuk berlaku. Kami sarankan Anda memverifikasi setelah aturan baru berlaku.
Mekanisme pembaruan cache: Setelah Anda memodifikasi aturan cache untuk sumber daya yang sudah disimpan dalam cache pada POPs, aturan tersebut tidak langsung berlaku hingga sumber daya yang disimpan dalam cache kedaluwarsa.
Cache tidak diperbarui: Jika Anda tidak secara manual memperbarui cache setelah Anda memodifikasi pengaturan cache, sumber daya yang disimpan dalam cache terus dikembalikan kepada pengguna hingga sumber daya yang disimpan dalam cache kedaluwarsa. Untuk informasi lebih lanjut, lihat Perbarui dan pra-ambil sumber daya.
Konfigurasi header respons terkait cache yang tidak tepat: Periksa apakah header respons
Cache-ControldanExpiresdari server asal dikonfigurasi dengan benar.Prioritas aturan cache: Jika permintaan cocok dengan beberapa aturan cache, hanya satu aturan yang berlaku. Prioritas: bobot > waktu pembuatan aturan.
Jika Anda membuat beberapa aturan cache, Anda dapat menetapkan bobot yang berbeda untuk setiap aturan untuk mengontrol prioritas eksekusinya. Bobot yang lebih besar menunjukkan prioritas yang lebih tinggi.
Jika beberapa aturan cache memiliki bobot yang sama, aturan yang dibuat pertama kali memiliki prioritas tertinggi, terlepas dari jenis aturan.
Contoh konfigurasi: Aturan cache berikut dikonfigurasikan untuk nama domain yang dipercepat
demo.aliyun.com. POPs mengambil sumber dayahttp://demo.aliyun.com/image/example.pngdari server asal. Aturan berikut cocok, dan bobot dari dua aturan tersebut sama. Oleh karena itu, sistem memilih aturan yang berlaku berdasarkan waktu pembuatan aturan. Aturan yang dibuat lebih awal memiliki prioritas lebih tinggi. Dalam contoh ini, aturan untuk direktori /image dibuat lebih awal. Oleh karena itu, aturan ini berlaku.
Bagaimana cara mengonfigurasi CORS menggunakan header respons HTTP?
Anda dapat mengonfigurasi header respons HTTP untuk mengizinkan permintaan dari sumber yang berbeda mengakses sumber daya. Untuk informasi lebih lanjut, lihat Konfigurasikan CORS.
Mengapa masalah CORS dilaporkan dan header respons Access-Control-Allow-Origin tidak dikembalikan meskipun saya telah mengonfigurasi header respons?
Berikut ini adalah penyebab yang mungkin:
Penyebab yang mungkin
Konfigurasi salah: Konfigurasi salah atau tidak berlaku.
Cache POP: Header respons lama mungkin disimpan dalam cache pada POPs.
Masalah server asal: Jika Anda mengonfigurasi header respons CORS pada POPs, respons dari server asal juga berisi header respons CORS, dan konfigurasi header respons tersebut bertentangan, masalah tersebut mungkin terjadi.
Cache browser: Header respons lama mungkin disimpan dalam cache di browser.
Solusi
Verifikasi konfigurasi: Pastikan bahwa konfigurasi CDN, terutama konfigurasi header respons CORS, valid dan berlaku.
Bersihkan cache CDN: Anda dapat menggunakan fitur pembaruan CDN untuk membersihkan konten yang disimpan dalam cache dan kemudian mengakses ulang sumber daya. Untuk informasi lebih lanjut, lihat Perbarui dan pra-ambil sumber daya.
Periksa konfigurasi server asal: Pastikan bahwa server asal tidak mengembalikan header respons CORS yang bertentangan dengan header respons yang dikembalikan oleh POPs. Kami sarankan Anda mengatur header respons yang dikembalikan dari server asal agar sama dengan header respons yang dikembalikan dari POPs.
Bersihkan cache browser: Bersihkan cache browser atau gunakan mode Penyamaran.
Hubungi dukungan teknis: Jika masalah tetap ada, hubungi dukungan teknis CDN atau ajukan tiket.
Apa aturan cache untuk kode status HTTP?
Gambar berikut menunjukkan aturan cache untuk kode status HTTP 204, 305, 400, 403, 404, 405, 414, 500, 501, 502, 503, dan 504.

Jika permintaan diproses oleh fitur range origin fetch, aturan cache berikut berlaku:
Untuk kode status HTTP selain 200 dan 206, seperti 204, 305, 400, 403, 404, 405, 414, 500, 501, 502, 503, dan 504, sumber daya tidak disimpan dalam cache.
Untuk kode status HTTP 200 dan 206, sumber daya disimpan dalam cache berdasarkan aturan cache yang dijelaskan dalam Aturan cache default Alibaba Cloud CDN/DCDN dan prioritas.
Kode status HTTP 5xx memungkinkan POPs menghapus potongan file yang disimpan dalam cache. Jika pengambilan asal timeout, potongan file tersebut tidak dihapus.
CatatanJika Anda mengaktifkan fitur range origin fetch, server asal membagi file besar menjadi potongan sebelum file dikembalikan ke POPs. Misalnya, sebuah file dibagi menjadi 10 potongan, 5 di antaranya disimpan dalam cache pada POPs. Ketika pengguna meminta potongan ke-6, server asal mengembalikan kode status HTTP 5xx, dan POPs menghapus 5 potongan yang disimpan dalam cache.
Jika permintaan tidak diproses oleh Range origin fetch, aturan cache berikut berlaku:
Jika server asal mengembalikan header respons
set-cookie, POPs tidak menyimpan sumber daya yang diambil dalam cache.Jika server asal tidak mengembalikan header respons
Set-Cookie, sumber daya yang diambil disimpan dalam cache berdasarkan aturan cache yang dikonfigurasikan di konsol Alibaba Cloud CDN. Untuk informasi lebih lanjut, lihat Cara aturan cache diterapkan.Jika server asal tidak mengembalikan header respons
Set-Cookiedan tidak ada aturan cache yang dikonfigurasikan di konsol CDN, sumber daya yang diambil diproses berdasarkan direktif header responsPragma,Cache-Control, atauExpires.Jika server asal tidak mengembalikan header respons
Set-Cookie,Pragma,Cache-Control, atauExpiresdan tidak ada aturan cache yang dikonfigurasikan di konsol CDN, sumber daya yang diambil disimpan dalam cache selama 1 detik.
Untuk kode status HTTP 303, 304, 401, 407, 600, dan 601, sumber daya tidak disimpan dalam (cache).
Apa perbedaan antara header respons keluar dan header respons masuk?
Header respons keluar dan header respons masuk mewakili informasi header HTTP pada tahap yang berbeda dalam arsitektur cache.
Header respons keluar: Dikirim oleh POPs ke klien (misalnya, browser). Pada hit cache, POP menyajikan objek dengan header ini. Mereka mengontrol caching sisi klien dan perilaku.
Header respons masuk: Dikirim oleh server asal ke POPs. Pada miss cache atau cache yang kedaluwarsa, POP mengambil objek dari server asal dan menerima header ini. POPs menggunakannya untuk memutuskan cara menyimpan objek dalam cache dan cara mengatur header keluar.
Singkatnya, header masuk mengatur caching POP. Header keluar mengatur caching klien. Keduanya bekerja sama untuk caching yang akurat dan efisien. Untuk informasi lebih lanjut, lihat Konfigurasikan header respons masuk.
Bagaimana cara melewati caching untuk nama domain
Atur waktu kedaluwarsa cache untuk semua jalur menjadi 0. Ikuti langkah-langkah berikut:
Masuk ke Alibaba Cloud CDN.
Di panel navigasi kiri, klik Domain Names.
Pada halaman Domain Names, temukan nama domain yang ingin Anda kelola dan klik Manage di kolom Actions.
Di pohon navigasi kiri nama domain, klik Cache.
Pada tab Cache Expiration, klik Create Rule.
Atur Type ke Directory.
Atur Object ke
/. Ini mewakili semua jalur.Atur Expire In ke
0 detik.Biarkan pengaturan default untuk parameter lainnya.
Klik OK.
Jika permintaan ke CDN cocok dengan beberapa aturan cache, hanya satu aturan yang berlaku. Aturan diprioritaskan pertama berdasarkan bobot, kemudian berdasarkan waktu pembuatan.
Jika Anda memiliki beberapa aturan pada tab Cache Expiration, atur Weight tertinggi untuk aturan yang melewati caching untuk nama domain. Ini memberikan aturan prioritas tertinggi.
