Edge Security Acceleration (ESA) menyimpan cache resource statis dari origin server di titik kehadiran (POP) terdekat dengan setiap klien, sehingga mengurangi latensi. Setiap POP mencakup komponen caching. Saat permintaan atau respons origin melewati POP, komponen tersebut menyimpan cache resource origin dan menetapkan waktu hidup (TTL).
TTL Browser cache TTL global berlaku untuk semua permintaan, bukan hanya jenis resource yang ditentukan oleh ekstensi file cache default.
Kebijakan cache default
Konfigurasi cache hanya berlaku untuk permintaan yang diarahkan ke komponen cache ESA. ESA menggunakan langkah-langkah berikut untuk menentukan apakah suatu permintaan masuk ke cache:
Periksa apakah permintaan bertipe GET atau HEAD.
Periksa apakah permintaan memenuhi kondisi yang ditentukan dalam aturan cache. Jika permintaan memenuhi kondisi tersebut, aturan cache—bukan pengaturan cache global—yang berlaku untuk permintaan tersebut. Untuk informasi lebih lanjut, lihat Aturan cache untuk respons sukses dan pengalihan.
Periksa apakah ekstensi file tercantum dalam daftar ekstensi file cache default. Jika iya, pengaturan cache global berlaku untuk permintaan tersebut.
Ekstensi file cache default
Secara default, ESA hanya menyimpan cache file jika ekstensinya sesuai dengan salah satu yang tercantum di bawah ini. TTL ditentukan oleh aturan cache yang sesuai.
Jika jenis resource yang ingin Anda simpan dalam cache tidak ada dalam daftar berikut, buatlah aturan cache untuk jenis resource tersebut. Untuk informasi lebih lanjut, lihat Aturan.
Ekstensi file yang didukung berdasarkan kategori:
Dokumen:
DOCdanDOCX: dokumen Microsoft Word.PPTdanPPTX: presentasi Microsoft PowerPoint.PDF: dokumen portabel.CSV: file nilai yang dipisahkan koma.
File gambar:
BMP: gambar bitmap.GIF: gambar Graphics Interchange Format (GIF).ICO: gambar ikon.JPEGdanJPG: gambar Joint Photographic Experts Group (JPEG).PNG: gambar Portable Network Graphics (PNG).SVGdanSVGZ: gambar Scalable Vector Graphics (SVG).TIFdanTIFF: gambar Tagged Image File Format (TIFF).WEBP: gambar WebP, yang mendukung kompresi lossy maupun kompresi tanpa kehilangan data.
File audio:
MP3: file MPEG-1 Audio Layer III (MP3).FLAC: file Free Lossless Audio Codec (FLAC).MIDdanMIDI: file Musical Instrument Digital Interface (MIDI).
File video:
AVI: file Audio Video Interleave (AVI).MP4: file MPEG-4 (MP4).MKV: file Matroska Video (MKV).WEBM: format kontainer media terbuka yang mendukung video dan audio.
File terkompresi:
7Z: file 7-Zip.GZ: file GNU Gzip.RAR: file RAR.TAR: file TAR.ZIP: file ZIP.ZST: file Zstandard.
File executable (program executable/paket instalasi):
APK: file paket Android.BIN: file biner, yang sering digunakan untuk pembaruan firmware.CLASS: file bytecode Java.DMG: file image disk macOS.EXE: file executable Windows.JAR: file arsip Java (JAR).MSI: file installer Windows.ISO: file image ISO.
File font:
EOT: file font Embedded OpenType (EOT).OTF: file font OpenType (OTF).TTF: file font TrueType (TTF).WOFFdanWOFF2: file Web Open Font Format (WOFF).
File skrip dan kode:
CSS: file Cascading Style Sheets (CSS).EJS: file templat Embedded JavaScript (EJS).JS: file JavaScript (JS).File desain dan grafis vektor:
EPS: file Encapsulated PostScript (EPS).PICT: file Apple PICT.PS: file PostScript (PS).SWF: file Shockwave Flash (SWF).
Aturan cache untuk respons sukses dan pengalihan
Kode status yang berlaku: 200, 203, 206, 300, 301, dan 410.
TTL cache edge memiliki empat opsi:
Honor Origin TTL or Use Default Cache Rule: Jika respons yang dikembalikan dari origin server berisi header
Cache-Control,Expires,Last-Modified, danETaguntuk menetapkan kebijakan cache, ESA menggunakan kebijakan cache dari origin server. Jika respons yang dikembalikan dari origin server tidak berisi salah satu headerCache-Control,Expires,Last-Modified, danETag, ESA menyimpan cache resource berdasarkan kebijakan cache default ESA.Honor Origin TTL or Do Not Cache: Jika respons yang dikembalikan dari origin server berisi header
Cache-Controluntuk menetapkan kebijakan cache, ESA menggunakan kebijakan cache dari origin server. Jika respons yang dikembalikan dari origin server tidak berisi headerCache-Control, ESA tidak menyimpan cache resource.Do Not Cache: Semua resource yang diambil dari origin server tidak disimpan dalam cache di POP ESA.
Use Custom TTL: ESA mengabaikan header
Cache-Control,Expires,Last-Modified, danETagdari kebijakan cache dalam respons origin dan menggunakan TTL yang ditetapkan pada ESA.
Aturan cache untuk respons dengan kode status error
Untuk kode status 204, 305, 404, 405, 414, 424, 429, 500, 501, 502, 503, dan 504, aturan cache adalah sebagai berikut:
Jika origin server mengembalikan header respons
set-cookie, respons tidak disimpan dalam cache.Jika origin server tidak mengembalikan header respons
set-cookie, sistem memeriksa apakah TTL untuk kode status tersebut telah dikonfigurasi di Konsol:Jika TTL dikonfigurasi, respons disimpan dalam cache berdasarkan pengaturan di Konsol. Jika beberapa aturan ditetapkan, aturan dengan nomor ordinal terkecil yang berlaku.
Jika TTL tidak dikonfigurasi, respons disimpan dalam cache berdasarkan header respons
Pragma,Cache-Control, atauExpiresdari origin server.
Jika origin server tidak mengembalikan header respons
Pragma,Cache-Control, atauExpires, respons disimpan dalam cache selama 1 detik secara default.
Untuk kode status 302, 307, dan 403, aturan cache adalah sebagai berikut:
Jika origin server mengembalikan header respons
set-cookie, respons tidak disimpan dalam cache.Jika origin server tidak mengembalikan header respons
set-cookie, sistem memeriksa apakah TTL untuk kode status tersebut telah dikonfigurasi di Konsol:Jika TTL dikonfigurasi, respons disimpan dalam cache berdasarkan pengaturan di Konsol. Jika beberapa aturan ditetapkan, aturan dengan nomor ordinal terkecil yang berlaku.
Jika TTL tidak dikonfigurasi, respons disimpan dalam cache berdasarkan header respons
Pragma,Cache-Control, atauExpiresdari origin server.
Jika origin server tidak mengembalikan header respons
Pragma,Cache-Control, atauExpires, respons tidak disimpan dalam cache.
Untuk kode status error lainnya, seperti 400, aturan cache adalah sebagai berikut:
Jika origin server mengembalikan header respons
set-cookie, respons tidak disimpan dalam cache.Jika origin server tidak mengembalikan header respons
set-cookie, sistem memeriksa apakah TTL untuk kode status tersebut telah dikonfigurasi di Konsol. Jika beberapa aturan ditetapkan, aturan dengan nomor ordinal terkecil yang berlaku.Dalam semua kasus lainnya, respons tidak disimpan dalam cache.
Untuk permintaan yang menggunakan range origin fetch, jika POP menerima respons dengan kode status selain 206 dari origin server, POP akan menghapus shard file yang tersimpan dalam cache. Timeout pada origin fetch tidak menyebabkan file cache dihapus.
Saat menggunakan range origin fetch, origin server membagi file besar menjadi beberapa shard file yang lebih kecil dan mengirimkannya ke POP. Misalnya, sebuah file dibagi menjadi 10 shard dan POP telah menyimpan cache 5 shard tersebut. Ketika POP meminta shard ke-6 dan origin server mengembalikan kode status 5xx, POP akan menghapus semua 5 shard yang telah disimpan dalam cache.
Informasi respons cache
POP ESA mengembalikan header respons terkait cache dengan informasi berikut:
Ali-Swift-Global-Savetime: Waktu saat resource pertama kali masuk ke POP ESA (ditentukan oleh arsitektur cache website, yang bisa berupa POP L2 atau POP pada tingkat cache lainnya).
Nilainya berupa stempel waktu UNIX. Contoh:
1745053111menunjukkan16:58:31 pada 19 April 2025.
Date: Tanggal saat origin server mengembalikan resource ke POP ESA.
Tanggal diperbarui ketika POP ESA menginisiasi permintaan origin yang berisi header
If-Modified-SinceatauIf-None-Matchuntuk merevalidasi resource dan origin server mengembalikan kode status HTTP 304.Waktu dalam format GMT. Contoh:
Sat, 19 Apr 2025 08:58:31 GMT.
X-Site-Cache-Status: Status cache resource yang diminta di POP ESA. Daftar berikut menjelaskan status resource:
HIT: Resource ditemukan dalam cache POP ESA.
MISS: Resource tidak ditemukan dalam cache POP ESA. POP mengambil resource dari origin server lalu mengembalikannya ke klien.
NONE/UNKNOWN: Resource tidak memenuhi syarat untuk disimpan dalam cache karena alasan berikut:
Fungsi edge menghasilkan respons tetapi tidak mengirim subrequest apa pun. Dalam hal ini, respons bukan berasal dari cache, dan status cache dicatat sebagai
none/unknown.Saat permintaan utama fungsi edge menginisiasi subrequest (
fetch), status cache dicatat untuk subrequest tersebut, sedangkan status cache permintaan utama dicatat sebagainone/unknown. Hal ini terjadi karena modul fungsi edge berjalan sebelum modul cache, sehingga permintaan utama tidak melewati cache.Permintaan klien yang diblokir oleh aturan WAF kustom tidak melewati cache karena WAF berjalan sebelum modul cache, sehingga status cache dicatat sebagai
none/unknown.Permintaan klien mengenai Request redirects atau HTTPS规则. POP kemudian mengirim respons pengalihan ke URL lain. Karena aturan ini berjalan sebelum modul cache, status cache dicatat sebagai
none/unknown.
EXPIRED: Resource ditemukan dalam cache POP ESA tetapi telah kedaluwarsa. POP mengambil resource dari origin server lalu mengembalikannya ke klien. Kode status yang dikembalikan oleh origin server adalah 200 atau 206.
STALE:
Resource disajikan dari cache POP ESA tetapi telah kedaluwarsa. Hal ini terjadi dalam kasus berikut:
Pengaturan cache adalah Honor Origin TTL dan respons origin berisi
Cache-Control:stale-while-revalidate=<seconds>. Dalam waktu yang ditentukan, ESA menginisiasi permintaan ke origin server untuk merevalidasi resource dan menyajikan cache yang kedaluwarsa ke klien.Pengaturan cache adalah Honor Origin TTL dan respons origin berisi
Cache-Control:stale-if-error=<seconds>. Dalam waktu yang ditentukan, ESA menyajikan cache yang kedaluwarsa ke klien ketika ESA tidak dapat terhubung ke origin server untuk mengambil resource yang diperbarui.Fitur Configure Serve Stale Content diaktifkan. Fitur ini memungkinkan POP ESA menyajikan cache yang kedaluwarsa ke klien ketika respons origin mengalami timeout atau origin server tidak dapat dijangkau.
BYPASS
Permintaan ke resource melewati cache ESA. Hal ini terjadi dalam kasus berikut:
Pengaturan cache bukan Honor Origin TTL dan ESA menetapkan TTL cache kustom menjadi 0 detik.
Pengaturan cache adalah Honor Origin TTL tetapi nilai header
Cache-Controlyang dikembalikan oleh origin server adalahno-store.
REVALIDATED
Resource disajikan oleh cache ESA, tetapi telah kedaluwarsa. ESA menginisiasi permintaan origin yang berisi header
If-Modified-SinceatauIf-None-Matchke origin server untuk merevalidasi resource. Origin server mengembalikan kode status HTTP 304.DYNAMIC
ESA mendeteksi bahwa resource merupakan konten dinamis dan tidak ada aturan cache yang berlaku untuk permintaan tersebut. Dalam hal ini, ESA mengambil resource dari origin server lalu mengembalikannya ke klien.
X-Swift-Cachetime: Menentukan TTL resource di POP dalam satuan detik. NilaiX-Swift-Cachetimetidak sama dengan TTL yang ditetapkan di ESA. Nilai ini dihitung menggunakan rumus berikut:X-Swift-Cachetime=Ali-Swift-Global-Savetime+ TTL yang ditetapkan di ESA -X-Swift-SaveTime. Skenario berikut mungkin terjadi:Nilai
X-Swift-Cachetimesama dengan TTL yang ditetapkan di ESA, misalnya 3600 detik.Nilai
X-Swift-Cachetimesedikit lebih kecil daripada TTL yang ditetapkan di ESA. Misalnya, jika TTL yang ditetapkan di ESA adalah 300 detik, nilaiX-Swift-Cachetimemungkin 295 detik. Perbedaan ini dapat terjadi karena alasan berikut:Latensi tinggi terjadi saat node L1 mengambil konten dari node L2.
Jam pada node L1 dan L2 tidak sinkron.
Nilai
X-Swift-Cachetimenegatif. Hal ini dapat terjadi jika Anda mengubah pengaturan TTL di ESA setelah resource disimpan dalam cache. Ini terjadi ketika permintaan klien tiba setelah cache node L1 kedaluwarsa, tetapi cache node L2 masih valid. Misalnya, TTL awalnya ditetapkan menjadi 3600 detik di ESA dan kemudian diubah menjadi 300 detik. Jika klien mengirim permintaan 600 detik setelah resource disimpan dalam cache, respons mencakupX-Swift-Cachetime:-300. Untuk mengatasi masalah ini, Anda dapat merefresh cache.
X-Swift-Cachetime:
TTL cache resource di POP ESA. Satuan: detik.
X-Swift-SaveTime:
Waktu saat resource pertama kali masuk ke POP saat ini (POP L1) yang menerima permintaan klien.
Waktu dalam format GMT. Contoh:
Sat, 19 Apr 2025 08:58:31 GMT.
Kebijakan Do Not Cache
POP ESA tidak menyimpan cache file dan meneruskan semua permintaan file dalam kondisi berikut:
Edge Cache TTL pada halaman Settings ESA diatur ke Honor Origin TTL or Do Not Cache dan respons origin adalah
Cache-Control: no-store.Edge Cache TTL pada halaman Settings ESA diatur ke Do Not Cache.
Edge Cache TTL pada halaman Settings ESA diatur ke Use Custom TTL dan TTL cache diatur menjadi 0 detik.
Revalidasi cache
Setelah file yang disimpan dalam cache di POP ESA kedaluwarsa, POP ESA mengirim permintaan validasi ke origin server pada permintaan klien berikutnya. Jika file belum berubah, origin server mengembalikan 304 not-modified, dan POP ESA menyajikan file yang tersimpan dalam cache tanpa mengunduh ulang. Hal ini mengurangi lalu lintas origin dan meningkatkan kecepatan respons.
Konfigurasi kebijakan khusus: File disimpan dalam cache selama 0 detik, dan POP ESA mengarahkan setiap permintaan ke origin server untuk validasi.
Edge Cache TTL pada halaman Settings ESA diatur ke Honor Origin TTL or Use Default Cache Rule, dan respons origin memenuhi kondisi berikut:
Cache-Control: no-cacheCache-Control: max-age=0
Konfigurasi kebijakan reguler: Origin server merespons kebijakan terkait validasi cache, dan POP ESA menjalankan kebijakan aktual.
Edge Cache TTL pada halaman Settings ESA diatur ke Honor Origin TTL or Use Default Cache Rule, dan respons origin memenuhi salah satu kebijakan validasi cache berikut:
must-revalidateproxy-revalidatestale-while-revalidate=secondsstale-if-error=seconds
Kebijakan validasi cache
Kebijakan validasi cache:
must-revalidate
Deskripsi: Setelah kedaluwarsa, cache apa pun (proxy atau browser) harus merevalidasi resource dengan origin server sebelum menyajikannya. Cache tidak boleh menyajikan konten kedaluwarsa meskipun jaringan tidak tersedia, kecuali resource telah divalidasi tidak berubah.
Contoh:
Cache-Control: max-age=3600, must-revalidatemenunjukkan bahwa resource harus dikembalikan ke origin server untuk memvalidasi kesegarannya setelah resource kedaluwarsa.
proxy-revalidate
Deskripsi: Mirip dengan
must-revalidate, tetapi hanya berlaku untuk cache bersama (CDN, server proxy). Cache pribadi seperti browser tidak terikat oleh batasan ini.Contoh:
Cache-Control: max-age=3600, proxy-revalidatemenunjukkan bahwa resource harus dikembalikan ke origin server untuk memvalidasi kesegarannya setelah resource kedaluwarsa.
stale-while-revalidate=seconds
Deskripsi: Setelah kedaluwarsa, cache menyajikan konten kedaluwarsa selama durasi yang ditentukan sambil secara asinkron merevalidasi dengan origin di latar belakang. Gunakan ini ketika pengurangan latensi lebih penting daripada menyajikan konten kedaluwarsa untuk waktu singkat.
Contoh:
Cache-Control: max-age=3600, stale-while-revalidate=60menunjukkan bahwa resource dianggap segar selama 3.600 detik (1 jam) setelah pertama kali diterbitkan. Setelah kedaluwarsa, resource masih dapat disediakan untuk pengguna selama 60 detik berikutnya. Pada saat yang sama, POP berusaha mendapatkan pembaruan dari origin server.
stale-if-error=seconds
Deskripsi: Saat origin tidak dapat dijangkau (server rusak, error jaringan), POP menyajikan konten cache yang kedaluwarsa selama durasi yang ditentukan. Hal ini meningkatkan toleransi kesalahan dan menjaga ketersediaan selama gangguan origin.
Contoh:
Cache-Control: max-age=86400, stale-if-error=604800menunjukkan bahwa resource dianggap segar selama 86.400 detik (24 jam) setelah pertama kali diterbitkan. Jika revalidasi setelah 86.400 detik gagal, resource cache terakhir yang berhasil masih dapat disediakan selama 604.800 detik berikutnya (satu minggu).