Edge Security Acceleration (ESA) menyimpan cache sumber daya statis Anda dari server origin ke titik kehadiran (POP) terdekat dengan klien. Saat mengakses sumber daya statis, sistem mengambilnya dari POP alih-alih dari server origin untuk meningkatkan efisiensi akses. Semua POP dilengkapi komponen caching yang menyimpan sumber daya dari server origin dan menetapkan waktu hidup (TTL) untuk sumber daya tersebut saat pengguna atau server origin berinteraksi dengan POP.
TTL cache browser global Browser cache TTL berlaku untuk semua permintaan, bukan hanya jenis sumber daya yang ditentukan oleh ekstensi file default yang di-cache.
Kebijakan cache default
Konfigurasi cache hanya berlaku untuk permintaan klien yang dikirim ke komponen cache ESA. Untuk menentukan apakah permintaan klien dikirim ke komponen cache, ESA melakukan langkah-langkah berikut:
Memeriksa apakah permintaan bertipe GET atau HEAD.
Memeriksa apakah permintaan memenuhi kondisi yang ditentukan dalam aturan cache. Jika ya, aturan cache—bukan pengaturan cache global—yang berlaku. Untuk informasi selengkapnya, lihat Aturan cache untuk respons sukses dan pengalihan.
Memeriksa apakah ekstensi file tercantum dalam daftar ekstensi file default yang di-cache. Jika ya, pengaturan cache global berlaku untuk permintaan tersebut.
Ekstensi file default yang di-cache
Secara default, ESA hanya menyimpan cache file yang diminta sesuai aturan yang cocok jika ekstensinya termasuk dalam daftar berikut. TTL sumber daya yang di-cache ditentukan oleh aturan cache yang dikenai sumber daya tersebut.
Jika jenis sumber daya yang ingin Anda cache tidak tercantum dalam daftar berikut, buat aturan cache untuk jenis sumber daya tersebut. Untuk informasi selengkapnya, lihat Aturan.
Daftar berikut menjelaskan ekstensi file untuk berbagai jenis file:
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 lossless.
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 yang dapat dieksekusi (program/installer):
APK: file paket Android.BIN: file biner, yang sering digunakan untuk pembaruan firmware.CLASS: file bytecode Java.DMG: file image disk macOS.EXE: file yang dapat dieksekusi 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, masing-masing diterapkan berdasarkan logika berbeda:
Honor Origin TTL or Use Default Cache Rule: Jika respons dari server origin berisi header
Cache-Control,Expires,Last-Modified, danETaguntuk menetapkan kebijakan cache, ESA menggunakan kebijakan cache server origin. Jika respons dari server origin tidak berisi salah satu headerCache-Control,Expires,Last-Modified, danETag, ESA menyimpan cache sumber daya berdasarkan kebijakan cache default ESA.Honor Origin TTL or Do Not Cache: Jika respons dari server origin berisi header
Cache-Controluntuk menetapkan kebijakan cache, ESA menggunakan kebijakan cache server origin. Jika respons dari server origin tidak berisi headerCache-Control, ESA tidak menyimpan cache sumber daya.Do Not Cache: Semua sumber daya yang diambil dari server origin tidak di-cache pada 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 server origin mengembalikan header respons
set-cookie, respons tidak di-cache.Jika server origin tidak mengembalikan header respons
set-cookie, sistem memeriksa apakah TTL untuk kode status tersebut telah dikonfigurasi di Konsol:Jika TTL dikonfigurasi, respons di-cache berdasarkan pengaturan di Konsol. Jika beberapa aturan ditetapkan, aturan dengan nomor ordinal terkecil yang berlaku.
Jika TTL tidak dikonfigurasi, respons di-cache berdasarkan header respons
Pragma,Cache-Control, atauExpiresdari server origin.
Jika server origin tidak mengembalikan header respons
Pragma,Cache-Control, atauExpires, respons di-cache selama 1 detik secara default.
Untuk kode status 302, 307, dan 403, aturan cache adalah sebagai berikut:
Jika server origin mengembalikan header respons
set-cookie, respons tidak di-cache.Jika server origin tidak mengembalikan header respons
set-cookie, sistem memeriksa apakah TTL untuk kode status tersebut telah dikonfigurasi di Konsol:Jika TTL dikonfigurasi, respons di-cache berdasarkan pengaturan di Konsol. Jika beberapa aturan ditetapkan, aturan dengan nomor ordinal terkecil yang berlaku.
Jika TTL tidak dikonfigurasi, respons di-cache berdasarkan header respons
Pragma,Cache-Control, atauExpiresdari server origin.
Jika server origin tidak mengembalikan header respons
Pragma,Cache-Control, atauExpires, respons tidak di-cache.
Untuk kode status error lainnya, seperti 400, aturan cache adalah sebagai berikut:
Jika server origin mengembalikan header respons
set-cookie, respons tidak di-cache.Jika server origin 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 di-cache.
Untuk permintaan yang menggunakan range origin fetch, jika POP menerima respons dengan kode status selain 206 dari server origin, POP menghapus shard file yang di-cache. Timeout origin fetch tidak menyebabkan file cache dihapus.
Saat menggunakan range origin fetch, server origin 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 server origin mengembalikan kode status 5xx, POP menghapus semua 5 shard yang telah di-cache.
Informasi respons cache
POP ESA memberikan respons standar dan jelas yang memungkinkan Anda menyesuaikan permintaan HTTP secara dinamis. Header respons yang terkait dengan cache berisi informasi berikut:
Ali-Swift-Global-Savetime: Waktu saat sumber daya 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 server origin mengembalikan sumber daya ke POP ESA.
Tanggal diperbarui ketika POP ESA menginisiasi permintaan origin yang berisi header
If-Modified-SinceatauIf-None-Matchuntuk merevalidasi sumber daya dan server origin mengembalikan kode status HTTP 304.Waktunya dalam format GMT. Contoh:
Sat, 19 Apr 2025 08:58:31 GMT.
X-Site-Cache-Status: Status cache sumber daya yang diminta pada POP ESA. Daftar berikut menjelaskan status sumber daya:
HIT: Sumber daya ditemukan dalam cache POP ESA.
MISS: Sumber daya tidak ditemukan dalam cache POP ESA. POP mengambil sumber daya dari server origin lalu mengembalikannya ke klien.
NONE/UNKNOWN: Sumber daya tidak memenuhi syarat untuk di-cache karena alasan berikut:
Fungsi edge menghasilkan respons tetapi tidak mengirim subpermintaan apa pun. Dalam hal ini, respons bukan berasal dari cache, dan status cache dicatat sebagai
none/unknown.Saat permintaan utama fungsi edge menginisiasi subpermintaan (
fetch), status cache dicatat untuk subpermintaan 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 dijalankan sebelum modul cache, sehingga status cache dicatat sebagai
none/unknown.Permintaan klien mengenai Redirect rules atau HTTPS规则. POP kemudian mengirim respons pengalihan ke URL lain. Karena aturan ini berjalan sebelum modul cache, status cache dicatat sebagai
none/unknown.
EXPIRED: Sumber daya ditemukan dalam cache POP ESA tetapi telah kedaluwarsa. POP mengambil sumber daya dari server origin lalu mengembalikannya ke klien. Kode status yang dikembalikan oleh server origin adalah 200 atau 206.
STALE:
Sumber daya 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 periode yang ditentukan, ESA menginisiasi permintaan ke server origin untuk merevalidasi sumber daya dan menyajikan cache yang kedaluwarsa ke klien.Pengaturan cache adalah Honor Origin TTL dan respons origin berisi
Cache-Control:stale-if-error=<seconds>. Dalam periode yang ditentukan, ESA menyajikan cache yang kedaluwarsa ke klien ketika ESA tidak dapat terhubung ke server origin untuk mengambil sumber daya terbaru.Fitur Configure response cache expiration diaktifkan. Fitur ini memungkinkan POP ESA menyajikan cache yang kedaluwarsa ke klien ketika respons origin timeout atau server origin tidak dapat dijangkau.
BYPASS
Permintaan ke sumber daya 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 server origin adalahno-store.
REVALIDATED
Sumber daya disajikan oleh cache ESA, tetapi telah kedaluwarsa. ESA menginisiasi permintaan origin yang berisi header
If-Modified-Sinceataulf-None-Matchke server origin untuk merevalidasi sumber daya. Server origin mengembalikan kode status HTTP 304.DYNAMIC
ESA mendeteksi bahwa sumber daya merupakan konten dinamis dan tidak ada aturan cache yang ditentukan berlaku untuk permintaan tersebut. Dalam hal ini, ESA mengambil sumber daya dari server origin lalu mengembalikannya ke klien.
X-Swift-Cachetime: Menentukan TTL sumber daya pada 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 sumber daya di-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 sumber daya di-cache, respons mencakupX-Swift-Cachetime:-300. Untuk mengatasi masalah ini, Anda dapat merefresh cache.
X-Swift-Cachetime:
TTL cache sumber daya pada POP ESA. Satuan: detik.
X-Swift-SaveTime:
Waktu saat sumber daya pertama kali masuk ke POP saat ini (POP L1) yang menerima permintaan klien.
Waktunya 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.[CONREF:app_site_cache_configuration_node_expiration_title] pada halaman Settings ESA diatur ke Do Not Cache.
[CONREF:app_site_cache_configuration_node_expiration_title] pada halaman Settings ESA diatur ke Use Custom TTL dan TTL cache diatur menjadi 0 detik.
Revalidasi cache
Setelah file yang di-cache pada POP ESA kedaluwarsa, mekanisme revalidasi cache mulai berlaku saat klien meminta file tersebut untuk pertama kalinya setelah kedaluwarsa. POP ESA mengirim permintaan validasi ke server origin. Jika file belum berubah, server origin mengembalikan pesan 304 not-modified, dan POP ESA terus menyajikan file yang di-cache kepada klien tanpa perlu mengunduh file tersebut lagi. Hal ini secara efektif meningkatkan kecepatan respons permintaan klien dan mengurangi trafik respons dari server origin.
Konfigurasi kebijakan khusus: File di-cache selama 0 detik, dan POP ESA mengarahkan setiap permintaan ke server origin 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: Server origin merespons kebijakan terkait validasi cache, dan POP ESA menjalankan kebijakan aktual tersebut.
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
Daftar berikut menjelaskan kebijakan validasi cache dan memberikan contoh terkait:
must-revalidate
Deskripsi: Kebijakan ini menunjukkan bahwa jika sumber daya telah kedaluwarsa, sumber daya tersebut harus dikembalikan ke server origin untuk memvalidasi kesegarannya untuk cache apa pun (termasuk cache proxy dan cache browser) sebelum cache mengembalikan respons. Bahkan jika pengguna offline atau jaringan tidak tersedia, cache tidak dapat langsung menggunakan sumber daya yang kedaluwarsa kecuali sumber daya tersebut telah divalidasi tidak berubah.
Contoh:
Cache-Control: max-age=3600, must-revalidatemenunjukkan bahwa sumber daya harus dikembalikan ke server origin untuk memvalidasi kesegarannya setelah sumber daya kedaluwarsa.
proxy-revalidate
Deskripsi: Mirip dengan kebijakan
must-revalidate, kebijakan ini hanya berlaku untuk cache bersama, seperti cache CDN dan server proxy. Kebijakan ini tidak berlaku untuk cache pribadi seperti cache browser. Jika sumber daya telah kedaluwarsa, sumber daya tersebut harus dikembalikan ke server origin untuk validasi sebelum cache bersama menyediakan replika cache. Cache pribadi tidak tunduk pada batasan ini.Contoh:
Cache-Control: max-age=3600, proxy-revalidatemenunjukkan bahwa sumber daya harus dikembalikan ke server origin untuk memvalidasi kesegarannya setelah sumber daya kedaluwarsa.
stale-while-revalidate=seconds
Deskripsi: Kebijakan ini menunjukkan bahwa cache dapat terus menyediakan sumber daya cache lama selama periode tertentu (dalam detik) setelah sumber daya kedaluwarsa. Secara bersamaan, POP secara asinkron meminta konten terbaru dari server origin di latar belakang. Kebijakan ini berlaku ketika Anda ingin mengurangi waktu tunggu dan dapat menerima konten yang mungkin tidak paling mutakhir dalam periode waktu singkat.
Contoh:
Cache-Control: max-age=3600, stale-while-revalidate=60menunjukkan bahwa sumber daya dianggap segar selama 3.600 detik (1 jam) setelah pertama kali diterbitkan. Setelah kedaluwarsa, sumber daya tersebut masih dapat disediakan untuk pengguna selama 60 detik berikutnya. Secara bersamaan, POP mencoba mendapatkan pembaruan dari server origin.
stale-if-error=seconds
Deskripsi: Kebijakan ini menunjukkan bahwa ketika POP gagal mengambil konten terbaru dari server origin karena alasan seperti kerusakan server atau kesalahan jaringan, kebijakan ini memungkinkan POP mengembalikan respons yang menunjukkan bahwa sumber daya telah kedaluwarsa tetapi masih di-cache. Periode waktu (dalam detik) ditentukan, selama itu jika terjadi kesalahan, konten cache yang kedaluwarsa dapat digunakan. Hal ini meningkatkan kemampuan toleransi kesalahan sistem dan memastikan Anda dapat mengakses konten yang sebelumnya di-cache meskipun server origin tidak tersedia, sehingga meningkatkan pengalaman pengguna dan mengurangi dampak gangguan layanan.
Contoh:
Cache-Control: max-age=86400, stale-if-error=604800menunjukkan bahwa sumber daya dianggap segar selama 86.400 detik (24 jam) setelah pertama kali diterbitkan. Jika revalidasi setelah 86.400 detik gagal, sumber daya yang terakhir berhasil di-cache masih dapat disediakan selama 604.800 detik berikutnya (satu minggu).