Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Gambaran Umum
Elemen <clientCache><staticContent> elemen menentukan header HTTP terkait cache yang dikirim IIS 7 dan yang lebih baru ke klien Web, yang mengontrol bagaimana klien Web dan server proksi akan menyimpan konten yang dikembalikan IIS 7 dan yang lebih baru.
Misalnya, atribut httpExpires menentukan tanggal dan waktu konten harus kedaluwarsa, dan IIS 7 dan yang lebih baru akan menambahkan header HTTP "Kedaluwarsa" ke respons. Nilai untuk atribut httpExpires harus merupakan tanggal dan waktu yang sepenuhnya diformat yang mengikuti spesifikasi dalam RFC 1123. Contohnya:
Jum, 01 Jan 2010 12:00:00 GMT
Catatan
Untuk menggunakan atribut httpExpires , Anda perlu mengatur nilai atribut cacheControlMode ke UseExpires.
Spesifikasi HTTP 1.1 dalam Request For Comments (RFC) 2616 menentukan beberapa nilai yang mungkin untuk header HTTP "Cache-Control", seperti "no-cache," "private," "public," dll. Masing-masing nilai header ini memungkinkan klien Web dan server proksi mengetahui apakah mereka harus menyimpan konten dalam cache:
Konten yang berisi header "tanpa cache" tidak boleh di-cache oleh entitas apa pun. - Konten yang berisi header "privat" tidak boleh di-cache oleh server proksi, tetapi dapat di-cache oleh klien Web. - Konten yang berisi header "publik" dapat di-cache oleh entitas apa pun.
Catatan
Daftar di atas tidak komprehensif - ada banyak nilai tambahan yang dapat ditentukan oleh header "Cache-Control".
Direktif tambahan dapat ditambahkan ke header HTTP "Cache-Control", seperti "max-age," yang menentukan waktu kedaluwarsa eksplisit untuk konten. Di IIS 7, direktif "usia maks" dikonfigurasi melalui atribut cacheControlMaxAge . Meskipun pengaturan "Kedaluwarsa" dan "usia maks" agak analog, arahan "usia maks" lebih diprioritaskan daripada "Kedaluwarsa".
Catatan
Untuk menggunakan atribut cacheControlMaxAge , Anda perlu mengatur nilai atribut cacheControlMode ke UseMaxAge.
Untuk informasi selengkapnya tentang header penembolokan HTTP dan format tanggal/waktu, lihat artikel Permintaan Komentar (RFC) berikut ini:
- RFC 1123 - "Persyaratan untuk Host Internet -- Aplikasi dan Dukungan"
- RFC 2616 - "Protokol Transfer Hiperteks -- HTTP/1.1"
Kompatibilitas
| Versi | Catatan |
|---|---|
| IIS 10.0 | Elemen <clientCache> tidak dimodifikasi dalam IIS 10.0. |
| IIS 8.5 | Elemen <clientCache> tidak dimodifikasi dalam IIS 8.5. |
| IIS 8.0 | Atribut setEtag ditambahkan untuk menentukan apakah header HTTP ETag dihitung dan diatur. |
| IIS 7.5 | Elemen <clientCache> tidak dimodifikasi dalam IIS 7.5. |
| IIS 7.0 | Elemen <clientCache><staticContent> elemen diperkenalkan di IIS 7.0. |
| IIS 6.0 | Elemen menggantikan <clientCache> properti metabase IIS 6.0 berikut:
|
Siapkan
Elemen <clientCache><staticContent> elemen disertakan dalam penginstalan default IIS 7 dan yang lebih baru.
Bagaimana Caranya
Cara mengonfigurasi tanggal kedaluwarsa cache untuk situs web atau aplikasi
Buka Pengelola Layanan Informasi Internet (IIS):
Jika Anda menggunakan Windows Server 2012 atau Windows Server 2012 R2:
- Pada bilah tugas, klik Manajer Server, klik Alat, lalu klik Pengelola Layanan Informasi Internet (IIS).
Jika Anda menggunakan Windows 8 atau Windows 8.1:
- Tahan tombol Windows, tekan huruf X, lalu klik Panel Kontrol.
- Klik Alat Administratif, lalu klik dua kali Manajer Layanan Informasi Internet (IIS).
Jika Anda menggunakan Windows Server 2008 atau Windows Server 2008 R2:
- Pada bilah tugas, klik Mulai, arahkan ke Alat Administratif, lalu klik Pengelola Layanan Informasi Internet (IIS).
Jika Anda menggunakan Windows Vista atau Windows 7:
- Pada taskbar, klik Mulai, lalu klik Panel Kontrol.
- Klik dua kali Alat Administratif, lalu klik dua kali Manajer Layanan Informasi Internet (IIS).
Di panel Koneksi , buka situs, aplikasi, atau direktori yang ingin Anda nonaktifkan penembolokannya.
Di panel Header Respons HTTP , klik Atur Header Umum... di panel Tindakan .
Dalam kotak dialog Atur Header Respons HTTP Umum , centang kotak untuk kedaluwarsa konten Web, pilih opsi untuk kedaluwarsa setelah interval tertentu atau pada waktu tertentu, lalu klik OK.
Cara menonaktifkan penembolokan untuk situs web atau aplikasi
Buka Pengelola Layanan Informasi Internet (IIS):
Jika Anda menggunakan Windows Server 2012 atau Windows Server 2012 R2:
- Pada bilah tugas, klik Manajer Server, klik Alat, lalu klik Pengelola Layanan Informasi Internet (IIS).
Jika Anda menggunakan Windows 8 atau Windows 8.1:
- Tahan tombol Windows, tekan huruf X, lalu klik Panel Kontrol.
- Klik Alat Administratif, lalu klik dua kali Manajer Layanan Informasi Internet (IIS).
Jika Anda menggunakan Windows Server 2008 atau Windows Server 2008 R2:
- Pada bilah tugas, klik Mulai, arahkan ke Alat Administratif, lalu klik Pengelola Layanan Informasi Internet (IIS).
Jika Anda menggunakan Windows Vista atau Windows 7:
- Pada taskbar, klik Mulai, lalu klik Panel Kontrol.
- Klik dua kali Alat Administratif, lalu klik dua kali Manajer Layanan Informasi Internet (IIS).
Di panel Koneksi , buka situs, aplikasi, atau direktori yang ingin Anda nonaktifkan penembolokannya.
Di panel Header Respons HTTP , klik Atur Header Umum... di panel Tindakan .
Dalam kotak dialog Atur Header Respons HTTP Umum , centang kotak untuk kedaluwarsa konten Web, pilih Segera, lalu klik OK.
Konfigurasi
Atribut
| Atribut | Deskripsi | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
cacheControlCustom |
Atribut string opsional. Menentukan direktif kontrol cache HTTP 1.1 kustom. |
||||||||||
cacheControlMaxAge |
Atribut timeSpan opsional. Menentukan usia maksimum (dalam detik) dari nilai kontrol cache. Nilai defaultnya adalah 1.00:00:00 (1 hari). |
||||||||||
cacheControlMode |
Atribut enum opsional. Menentukan mode yang akan digunakan untuk penembolokan klien. Atribut cacheControlMode dapat menjadi salah satu nilai yang mungkin berikut. Default adalah NoControl.
|
||||||||||
httpExpires |
Atribut string opsional. Menentukan tanggal dan waktu setelah halaman yang di-cache pada klien dianggap basi. (Tanggal dan waktu diformat sesuai dengan spesifikasi dalam Permintaan Komentar 1123.) Nilai dikembalikan ke browser di header file HTML. Agen pengguna membandingkan nilai yang diberikan dengan tanggal saat ini untuk menentukan apakah akan menampilkan halaman yang di-cache atau meminta halaman yang diperbarui dari server. |
||||||||||
setEtag |
Atribut Boolean opsional. Menentukan apakah header HTTP ETag dihitung dan diatur. Header ETag digunakan untuk validasi cache web, dan memungkinkan server Web untuk tidak perlu mengirim respons penuh jika tidak ada perubahan yang dilakukan pada konten. setEtag dapat diatur di Editor Konfigurasi di jalur system.webServer/staticContent.Nilai defaultnya adalah true. |
Elemen Anak
Tidak ada.
Sampel Konfigurasi
Sampel konfigurasi berikut menambahkan header HTTP "Cache-Control: no-cache" ke respons, sehingga menonaktifkan penembolokan permintaan.
<configuration>
<system.webServer>
<staticContent>
<clientCache cacheControlMode="DisableCache" />
</staticContent>
</system.webServer>
</configuration>
Sampel konfigurasi berikut menambahkan header HTTP "Kedaluwarsa: Tue, 19 Jan 2038 03:14:07 GMT" ke respons, yang mengonfigurasi permintaan untuk kedaluwarsa beberapa tahun dari sekarang.
<configuration>
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseExpires"
httpExpires="Tue, 19 Jan 2038 03:14:07 GMT" />
</staticContent>
</system.webServer>
</configuration>
Kode Sampel
Sampel kode berikut menambahkan header HTTP "Cache-Control: no-cache" ke respons, sehingga menonaktifkan penembolokan permintaan.
AppCmd.exe
appcmd.exe set config "Default Web Site" -section:system.webServer/staticContent /clientCache.cacheControlMode:"DisableCache"
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample
{
private static void Main()
{
using(ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetWebConfiguration("Default Web Site");
ConfigurationSection staticContentSection = config.GetSection("system.webServer/staticContent");
ConfigurationElement clientCacheElement = staticContentSection.GetChildElement("clientCache");
clientCacheElement["cacheControlMode"] = @"DisableCache";
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetWebConfiguration("Default Web Site")
Dim staticContentSection As ConfigurationSection = config.GetSection("system.webServer/staticContent")
Dim clientCacheElement As ConfigurationElement = staticContentSection.GetChildElement("clientCache")
clientCacheElement("cacheControlMode") = "DisableCache"
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site";
var staticContentSection = adminManager.GetAdminSection("system.webServer/staticContent", "MACHINE/WEBROOT/APPHOST/Default Web Site");
var clientCacheElement = staticContentSection.ChildElements.Item("clientCache");
clientCacheElement.Properties.Item("cacheControlMode").Value = "DisableCache";
adminManager.CommitChanges();
Vbscript
Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site"
Set staticContentSection = adminManager.GetAdminSection("system.webServer/staticContent", "MACHINE/WEBROOT/APPHOST/Default Web Site")
Set clientCacheElement = staticContentSection.ChildElements.Item("clientCache")
clientCacheElement.Properties.Item("cacheControlMode").Value = "DisableCache"
adminManager.CommitChanges()
Sampel kode berikut menambahkan header HTTP "Kedaluwarsa: Tue, 19 Jan 2038 03:14:07 GMT" ke respons, yang mengonfigurasi permintaan untuk kedaluwarsa beberapa tahun dari sekarang.
AppCmd.exe
appcmd.exe set config "Default Web Site" -section:system.webServer/staticContent /clientCache.cacheControlMode:"UseExpires"
appcmd.exe set config "Default Web Site" -section:system.webServer/staticContent /clientCache.httpExpires:"Tue, 19 Jan 2038 03:14:07 GMT"
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample
{
private static void Main()
{
using(ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetWebConfiguration("Default Web Site");
ConfigurationSection staticContentSection = config.GetSection("system.webServer/staticContent");
ConfigurationElement clientCacheElement = staticContentSection.GetChildElement("clientCache");
clientCacheElement["cacheControlMode"] = @"UseExpires";
clientCacheElement["httpExpires"] = @"Tue, 19 Jan 2038 03:14:07 GMT";
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetWebConfiguration("Default Web Site")
Dim staticContentSection As ConfigurationSection = config.GetSection("system.webServer/staticContent")
Dim clientCacheElement As ConfigurationElement = staticContentSection.GetChildElement("clientCache")
clientCacheElement("cacheControlMode") = "UseExpires"
clientCacheElement("httpExpires") = "Tue, 19 Jan 2038 03:14:07 GMT"
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site";
var staticContentSection = adminManager.GetAdminSection("system.webServer/staticContent", "MACHINE/WEBROOT/APPHOST/Default Web Site");
var clientCacheElement = staticContentSection.ChildElements.Item("clientCache");
clientCacheElement.Properties.Item("cacheControlMode").Value = "UseExpires";
clientCacheElement.Properties.Item("httpExpires").Value = "Tue, 19 Jan 2038 03:14:07 GMT";
adminManager.CommitChanges();
Vbscript
Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site"
Set staticContentSection = adminManager.GetAdminSection("system.webServer/staticContent", "MACHINE/WEBROOT/APPHOST/Default Web Site")
Set clientCacheElement = staticContentSection.ChildElements.Item("clientCache")
clientCacheElement.Properties.Item("cacheControlMode").Value = "UseExpires"
clientCacheElement.Properties.Item("httpExpires").Value = "Tue, 19 Jan 2038 03:14:07 GMT"
adminManager.CommitChanges()