Pembuat Header Cache-Control HTTP
Buat header HTTP Cache-Control yang valid dari direktif cacheability, freshness, dan revalidation — pilih preset konteks atau aktifkan/nonaktifkan direktif secara individual, dengan penjelasan plain-English setiap direktif dan peringatan untuk kombinasi yang bertentangan atau sebagian redundan, seperti no-store bersama max-age.
Input
Pilih konteks umum untuk mengisi kombinasi direktif yang dikurasi, atau biarkan di Custom untuk mengaktifkan/menonaktifkan direktif sendiri.
Cacheability
Izinkan cache apa pun, termasuk shared cache (CDN, proxy), untuk menyimpan respons — bahkan yang biasanya dianggap tidak dapat di-cache.
Batasi caching hanya ke browser yang meminta — shared cache harus tidak menyimpan respons ini.
Izinkan penyimpanan, tetapi paksa revalidasi dengan origin sebelum setiap penggunaan kembali. TIDAK menonaktifkan caching, meskipun namanya.
Larang menyimpan respons di mana pun, oleh cache apa pun. Direktif paling ketat — menggantikan setiap direktif lain di sini.
Freshness
Berapa lama respons segar, dalam detik, untuk browser dan shared cache. Biarkan kosong untuk menghilangkan.
Menimpa max-age untuk shared cache (CDN, proxy) saja. Biarkan kosong untuk menghilangkan.
Setelah freshness berakhir, layani respons yang sudah usang hingga beberapa detik ini saat melakukan revalidasi di background. Biarkan kosong untuk menghilangkan.
Jika revalidasi gagal (error origin atau timeout), layani respons yang sudah usang hingga beberapa detik ini sebagai gantinya. Biarkan kosong untuk menghilangkan.
Revalidation & Lainnya
Setelah respons sudah usang, cache harus melakukan revalidasi dengan origin sebelum penggunaan ulang — mereka tidak dapat melayani data usang bahkan jika origin tidak dapat dijangkau.
Sama seperti must-revalidate, tetapi mengikat shared cache saja — browser tidak terpengaruh.
Beri tahu browser bahwa bodi tidak akan pernah berubah selagi segar, jadi harus melewati revalidasi bersyarat — bahkan saat reload manual. Tidak berarti tanpa max-age/s-maxage.
Larang cache dan proxy memodifikasi bodi respons (mis. kompresi ulang gambar) bahkan jika mereka biasanya lakukan.
Cache hanya dapat menyimpan respons ini jika memahami semantik kode statusnya — biasanya dipasangkan dengan no-store.
Output
Baris header lengkap, siap ditempel ke konfigurasi respons server Anda.
| Direktif | Efek |
|---|---|
| No data yet | |
Kombinasi bertentangan atau sebagian redundan — header masih menghasilkan, tetapi direktif ini tidak akan berperilaku seperti yang Anda harapkan bersama-sama.
Panduan
Apa itu HTTP Cache-Control Header Builder?
Cache-Control adalah header respons HTTP yang memberitahu browser, CDN, dan proxy apakah respons dapat di-cache, berapa lama, dan bagaimana harus divalidasi kembali setelah menjadi usang. Ini juga salah satu header yang paling mudah untuk salah: no-cache tidak berarti "jangan cache," no-store secara diam-diam menimpa hampir semua hal lain yang Anda tetapkan bersama dengannya, dan s-maxage hanya penting untuk shared cache sementara max-age penting untuk keduanya. Tool ini merakit header yang benar dari direktif individual (atau preset yang dikurasi) dan menjelaskan, dalam plain English, dengan tepat apa yang dilakukan setiap direktif aktif — plus menandai kombinasi yang bertentangan atau sebagian membatalkan satu sama lain.
Cara menggunakannya
- Pilih Context Preset untuk skenario umum — respons API, aset statis, halaman HTML, atau data pribadi — atau biarkan di Custom untuk mengaktifkan/menonaktifkan direktif sendiri.
- Dalam mode Custom, centang direktif Cacheability yang berlaku (
public,private,no-cache,no-store), tetapkan waktu hidup Freshness dalam detik (max-age,s-maxage,stale-while-revalidate,stale-if-error), dan aktifkan direktif Revalidation apa pun yang Anda butuhkan (must-revalidate,proxy-revalidate,immutable,no-transform,must-understand). - Kotak Cache-Control Header diperbarui secara otomatis — salin langsung ke konfigurasi server, aturan CDN, atau kode aplikasi Anda.
- Baca What Each Directive Does untuk penjelasan plain-English setiap direktif yang telah Anda aktifkan, dan periksa Warnings untuk apa pun yang bertentangan atau secara diam-diam membatalkan direktif lain yang telah Anda tetapkan.
Memilih preset
- API response —
no-store. Data dinamis per-permintaan yang tidak boleh di-cache oleh siapa pun. - Static asset —
public, max-age=31536000, immutable. Untuk file dengan nama file yang di-hash atau berversi (app.a1b2c3.js) — URL sendiri berubah ketika konten berubah, jadi aman untuk di-cache selama setahun dan melewati revalidasi sepenuhnya. - HTML page —
no-cache. URL tetap sama tetapi konten dapat berubah, jadi cache dapat menyimpannya tetapi harus memeriksa dengan origin sebelum melayaninya lagi. - Private data —
private, max-age=0, must-revalidate. Halaman akun, keranjang, atau apa pun yang spesifik pengguna: dapat di-cache hanya oleh browser, dan selalu divalidasi kembali.
FAQ
Apa perbedaan antara no-cache dan no-store?
no-cache memungkinkan cache untuk menyimpan respons, tetapi memaksanya untuk revalidasi dengan server origin sebelum melayaninya lagi — ini adalah direktif "periksa dulu," bukan "jangan cache." no-store adalah versi ketat: tidak ada cache yang dapat menyimpan respons sama sekali. Mencampur no-store dengan direktif seperti max-age atau must-revalidate tidak invalid, tetapi direktif tersebut menjadi tidak berarti — no-store sudah mencegah penyimpanan apa pun untuk mereka terapkan.
Apa perbedaan antara max-age dan s-maxage?
max-age menetapkan waktu hidup freshness untuk setiap cache — browser dan shared cache apa pun (CDN, proxy) di antara. s-maxage menimpa waktu hidup itu untuk shared cache saja, memungkinkan Anda untuk cache respons lebih lama (atau lebih pendek) di CDN daripada di browser pengunjung sendiri. s-maxage pada respons private tidak memiliki efek, karena shared cache tidak diizinkan menyimpan respons pribadi sejak awal.
Apakah immutable berarti respons tidak pernah divalidasi kembali?
Hanya dalam jendela freshnessnya. immutable memberitahu browser bahwa dapat melewati permintaan revalidasi bersyarat sepenuhnya — termasuk pada reload yang dipicu pengguna — selama max-age (atau s-maxage) mengatakan respons segar. Setelah jendela itu berakhir, aturan revalidasi normal berlaku lagi. Menetapkan immutable tanpa max-age/s-maxage memberinya tidak ada jendela freshness untuk diterapkan.
Apakah Cache-Control satu-satunya header caching yang saya butuhkan?
Ini adalah yang utama untuk mengontrol freshness dan penyimpanan, tetapi validator seperti ETag dan Last-Modified masih penting untuk permintaan revalidasi — ini adalah apa yang dikirim cache kembali ke origin untuk bertanya "apakah ini telah berubah?" setelah max-age berakhir. Untuk mengonversi durasi menjadi nilai max-age= siap pakai tanpa aritmetika detik, gunakan Cache TTL Calculator. Untuk alur kerja pembuatan header yang setara pada permintaan lintas-origin, lihat CORS Headers Builder.
Privasi
Tool ini berjalan sepenuhnya di browser Anda. Direktif dan nilai yang Anda tetapkan tidak pernah dikirim ke atau disimpan di server kami.
Cara lain menggunakan alat ini
REST API
curl -X POST https://api.iotools.cloud/v1/tool/cache-control-header-builder \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"preset": "staticAsset"
}'Ganti dengan kunci Anda sendiri dari akun Anda. Bidang alat menjadi isi permintaan — tanpa pembungkus.
Tanyakan ke agen AI
Use the IOTools `cache-control-header-builder` tool (HTTP Cache-Control Header Builder) on this input:
YOUR_INPUT_HERETempelkan ini ke agen mana pun yang terhubung ke server MCP IOTools, lalu tambahkan input Anda.
Widget sematan
<iframe
src="https://iotools.cloud/embed/cache-control-header-builder/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title="Pembuat Header Cache-Control HTTP — iotools.cloud"
sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
allow="clipboard-write"
style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>Tempelkan ini di halaman Anda sendiri — gratis, tanpa kunci, cukup tautan balik.
| Biaya per panggilan | Mulai dari 5 kredit |
|---|