Skema skema <>
Gambaran Umum
Elemen <scheme>
<httpCompression>
elemen menentukan pengaturan berikut untuk skema kompresi zip (Gzip) dan Deflate GNU dalam Layanan Informasi Internet (IIS) 7:
Atribut nama dan dll masing-masing menentukan nama dan DLL penyedia skema kompresi. IIS 7 mendukung kompresi Gzip dan Deflate, dan kedua skema kompresi saat ini diterapkan di %windir%\system32\inetsrv\gzip.dll.
Atribut doStaticCompression menentukan apakah kompresi statis diaktifkan untuk skema kompresi yang ditentukan oleh atribut nama . Mengatur doStaticCompression ke true menentukan bahwa konten statis akan dikompresi saat diminta oleh klien. Jika kompresi statis diaktifkan, setiap permintaan untuk konten statis yang berisi header "Accept-Encoding: gzip" atau "Accept-Encoding: deflate" menyebabkan konten dikompresi, selama skema kompresi yang ditentukan dalam header diaktifkan di IIS. Jika permintaan tidak berisi header ini, atau header menentukan skema pemadatan yang tidak diaktifkan di IIS, konten tidak dikompresi.
Jika IIS menentukan bahwa respons harus dikompresi, IIS memeriksa direktori kompresi yang ditentukan oleh atribut direktori elemen <httpCompression> . Jika versi file statis segar dan terkompresi ditemukan di direktori, file tersebut dikirim ke browser klien. Jika versi file yang segar dan terkompresi tidak ditemukan, dan kompresi sesuai permintaan diaktifkan dengan atribut dynamicCompressionBeforeCache dari <elemen urlCompression> , IIS mengirim file yang diminta dalam bentuk yang tidak dikompresi, dan menambahkan file tersebut ke antrean kompresi latar belakang.
Atribut doDynamicCompression menentukan apakah kompresi dinamis diaktifkan untuk skema kompresi yang ditentukan oleh atribut nama . Mengatur doDynamicCompression ke true menentukan bahwa konten dinamis akan dikompresi saat diminta oleh klien. Jika kompresi dinamis diaktifkan, setiap permintaan untuk konten dinamis yang berisi header "Accept-Encoding: gzip" atau "Accept-Encoding: deflate" menyebabkan konten dikompresi, selama skema kompresi yang ditentukan di header diaktifkan di IIS. Jika permintaan tidak berisi header ini, atau header menentukan skema pemadatan yang tidak diaktifkan di IIS, konten tidak dikompresi.
Catatan
Karena konten dinamis menurut definisi selalu berubah, IIS tidak menyimpan versi konten dinamis yang dikompresi cache. Pemadatan dinamis mengonsumsi waktu CPU dan sumber daya memori yang cukup besar, dan hanya boleh digunakan pada server yang memiliki koneksi jaringan yang lambat dan waktu CPU untuk cadangan.
Atribut dynamicCompressionLevel dan staticCompressionLevel menentukan tingkat kompresi untuk skema kompresi ketika IIS masing-masing mengompresi konten dinamis atau statis. Tingkat kompresi yang lebih rendah menghasilkan file terkompresi yang sedikit lebih besar, tetapi dengan dampak keseluruhan yang lebih rendah pada sumber daya CPU dan memori. Tingkat kompresi yang lebih tinggi umumnya menghasilkan file terkompresi yang lebih kecil, tetapi dengan penggunaan CPU dan memori yang lebih tinggi.
Catatan
Secara default, hanya skema kompresi Gzip yang tersedia di IIS 7. Untuk mengaktifkan skema kompresi Deflate secara terprogram, lihat bagian Sampel Kode dari dokumen ini.
Kompatibilitas
Versi | Catatan |
---|---|
IIS 10.0 | Elemen <scheme> tidak dimodifikasi dalam IIS 10.0. |
IIS 8.5 | Elemen <scheme> tidak dimodifikasi dalam IIS 8.5. |
IIS 8.0 | Elemen <scheme> tidak dimodifikasi dalam IIS 8.0. |
IIS 7.5 | Elemen <scheme> tidak dimodifikasi dalam IIS 7.5. |
IIS 7.0 | Elemen <scheme> <httpCompression> elemen diperkenalkan dalam IIS 7.0. |
IIS 6.0 | Elemen menggantikan <scheme> properti metabase IIS 6.0 berikut:
|
Siapkan
Kompresi HTTP biasanya tersedia pada penginstalan default IIS 7 dan yang lebih baru. Namun, hanya kompresi statis yang diinstal secara default. Untuk menginstal kompresi statis atau dinamis, gunakan langkah-langkah berikut.
Windows Server 2012 atau Windows Server 2012 R2
- Pada taskbar, klik Manajer Server.
- Di Manajer Server, klik menu Kelola , lalu klik Tambahkan Peran dan Fitur.
- Di wizard Tambahkan Peran dan Fitur, klik Berikutnya. Pilih jenis penginstalan dan klik Berikutnya. Pilih server tujuan dan klik Berikutnya.
- Pada halaman Peran Server, perluas Server Web (IIS), perluas Server Web, perluas Performa, lalu pilih Kompresi Konten Statis dan/atau Kompresi Konten Dinamis. Klik Berikutnya.
- Pada halaman Pilih fitur, klik Berikutnya.
- Pada halaman Konfirmasi pilihan instalasi, klik Instal.
- Pada halaman Hasil , klik Tutup.
Windows 8 atau Windows 8.1
- Pada layar Mulai, pindahkan penunjuk ke sudut kiri bawah, klik kanan tombol Mulai, lalu klik Panel Kontrol.
- Di Panel Kontrol, klik Program dan Fitur, lalu klik Aktifkan atau nonaktifkan fitur Windows.
- Perluas Layanan Informasi Internet, perluas World Wide Web Services, perluas Fitur Performa, lalu pilih Kompresi Konten Dinamis dan/atau Kompresi Konten Statis.
- Klik OK.
- Klik Tutup.
Windows Server 2008 atau Windows Server 2008 R2
- Pada bilah tugas, klik Mulai, arahkan ke Alat Administratif, lalu klik Manajer Server.
- Di panel hierarki Manajer Server, perluas Peran, lalu klik Server Web (IIS).
- Di panel Server Web (IIS), gulir ke bagian Layanan Peran, lalu klik Tambahkan Layanan Peran.
- Pada halaman Pilih Layanan Peran dari Wizard Tambahkan Layanan Peran, pilih Kompresi Konten Dinamis jika Anda ingin menginstal pemadatan dinamis dan Kompresi Konten Statis jika Anda ingin menginstal pemadatan statis, lalu klik Berikutnya.
- Pada halaman Konfirmasi Pilihan Penginstalan, klik Instal.
- Pada halaman Hasil , klik Tutup.
Windows Vista atau Windows 7
- Pada bilah tugas, klik Mulai, lalu klik Panel Kontrol.
- Di Panel Kontrol, klik Program dan Fitur, lalu klik Aktifkan atau nonaktifkan Fitur Windows.
- Perluas Layanan Informasi Internet, lalu World Wide Web Services, lalu Fitur Performa.
- Pilih Http Compression Dynamic jika Anda ingin menginstal kompresi dinamis dan Kompresi Konten Statis jika Anda ingin menginstal kompresi statis.
- Klik OK.
Bagaimana Caranya
Tidak ada antarmuka pengguna untuk mengatur skema kompresi untuk IIS 7. Untuk contoh cara mengatur skema kompresi secara terprogram, lihat bagian Sampel Kode dari dokumen ini.
Konfigurasi
Atribut
Atribut | Deskripsi |
---|---|
dll |
Atribut string yang diperlukan. Menentukan jalur sistem file yang sepenuhnya memenuhi syarat dan nama file DLL kompresi yang terkait dengan skema kompresi. Layanan Penerbitan World Wide Web (layanan WWW) harus dimulai ulang sebelum perubahan apa pun pada atribut ini berlaku. |
doDynamicCompression |
Atribut Boolean opsional. Menentukan apakah respons terhadap permintaan konten dinamis, seperti skrip di ekstensi Active Server Pages (ASP) dan ISAPI, dikompresi. Jika nilai ini diubah pada tingkat skema kompresi individual, layanan WWW harus dimulai ulang sebelum perubahan berlaku. Nilai defaultnya adalah true . |
doStaticCompression |
Atribut Boolean opsional. Menentukan apakah IIS mengompresi respons terhadap permintaan konten statis. Karena atribut ini tidak dapat diwariskan, atribut harus diatur ke true pada tingkat global (httpCompression>) dan tingkat skema individu jika atribut nama diatur ke Gzip.< Jika nilai ini diubah pada tingkat skema kompresi individual, layanan WWW harus dimulai ulang sebelum perubahan berlaku. Catatan: Penyimpanan kompresi statis perlu berada di partisi disk atau berbagi jarak jauh yang diformat dengan NTFS. Jika penyimpanan file bukan NTFS, pemadatan statis dinonaktifkan. Untuk alasan keamanan, tidak ada respons terkompresi yang akan disajikan dari penyimpanan cache FAT. Nilai defaultnya adalah true . |
dynamicCompressionLevel |
Atribut uint opsional. Menentukan tingkat kompresi untuk skema kompresi saat konten dinamis sedang dikompresi. Tingkat berkisar dari 0 (tingkat kompresi terendah dan penggunaan CPU terendah) hingga 10 (tingkat kompresi tertinggi dan penggunaan CPU tertinggi). Layanan WWW harus dimulai ulang sebelum perubahan pada atribut ini berlaku. Catatan: Karena kompresi dinamis menggunakan waktu CPU dan sumber daya memori yang cukup besar, gunakan hanya pada server yang memiliki koneksi jaringan lambat dan waktu CPU untuk cadangan. Respons statis terkompresi dapat di-cache dan, oleh karena itu, tidak memengaruhi sumber daya CPU seperti yang dilakukan respons dinamis. Nilai defaultnya adalah 0 . |
name |
Atribut string yang diperlukan. Menentukan nama skema pemadatan. Misalnya, Gzip atau Deflate. |
staticCompressionLevel |
Atribut uint opsional. Menentukan tingkat kompresi untuk skema kompresi saat konten statis sedang dikompresi. Tingkat berkisar dari 0 (tingkat kompresi terendah dan penggunaan CPU terendah) hingga 10 (tingkat kompresi tertinggi dan penggunaan CPU tertinggi). 0 berarti kompresi dinonaktifkan. Layanan WWW harus dimulai ulang sebelum perubahan pada atribut ini berlaku. Nilai defaultnya adalah 7 . |
Elemen Anak
Elemen | Deskripsi |
---|---|
remove |
Elemen opsional. Menghapus referensi ke skema kompresi HTTP dari kumpulan skema kompresi HTTP. |
clear |
Elemen opsional. Menghapus semua referensi ke skema kompresi HTTP dari koleksi skema kompresi HTTP. |
Sampel Konfigurasi
Elemen default <httpCompression>
berikut dikonfigurasi dalam file ApplicationHost.config di IIS 7. Bagian konfigurasi ini mewarisi pengaturan konfigurasi default kecuali Anda menggunakan <clear>
elemen .
<httpCompression
directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
<dynamicTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/javascript" enabled="true" />
<add mimeType="*/*" enabled="false" />
</dynamicTypes>
<staticTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/javascript" enabled="true" />
<add mimeType="*/*" enabled="false" />
</staticTypes>
</httpCompression>
Kode Sampel
Sampel kode berikut menambahkan skema kompresi deflate ke IIS 7.
AppCmd.exe
appcmd.exe set config -section:system.webServer/httpCompression /+"[name='deflate',doStaticCompression='True',doDynamicCompression='True',dll='%Windir%\system32\inetsrv\gzip.dll']" /commit:apphost
Catatan
Anda harus yakin untuk mengatur parameter penerapan ke apphost
ketika Anda menggunakan AppCmd.exe untuk mengonfigurasi pengaturan ini. Ini menerapkan pengaturan konfigurasi ke bagian lokasi yang sesuai di file ApplicationHost.config.
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.GetApplicationHostConfiguration();
ConfigurationSection httpCompressionSection = config.GetSection("system.webServer/httpCompression");
ConfigurationElementCollection httpCompressionCollection = httpCompressionSection.GetCollection();
ConfigurationElement schemeElement = httpCompressionCollection.CreateElement("scheme");
schemeElement["name"] = @"deflate";
schemeElement["doStaticCompression"] = true;
schemeElement["doDynamicCompression"] = true;
schemeElement["dll"] = @"%Windir%\system32\inetsrv\gzip.dll";
httpCompressionCollection.Add(schemeElement);
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.GetApplicationHostConfiguration
Dim httpCompressionSection As ConfigurationSection = config.GetSection("system.webServer/httpCompression")
Dim httpCompressionCollection As ConfigurationElementCollection = httpCompressionSection.GetCollection
Dim schemeElement As ConfigurationElement = httpCompressionCollection.CreateElement("scheme")
schemeElement("name") = "deflate"
schemeElement("doStaticCompression") = True
schemeElement("doDynamicCompression") = True
schemeElement("dll") = "%Windir%\system32\inetsrv\gzip.dll"
httpCompressionCollection.Add(schemeElement)
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var httpCompressionSection = adminManager.GetAdminSection("system.webServer/httpCompression", "MACHINE/WEBROOT/APPHOST");
var httpCompressionCollection = httpCompressionSection.Collection;
var schemeElement = httpCompressionCollection.CreateNewElement("scheme");
schemeElement.Properties.Item("name").Value = "deflate";
schemeElement.Properties.Item("doStaticCompression").Value = true;
schemeElement.Properties.Item("doDynamicCompression").Value = true;
schemeElement.Properties.Item("dll").Value = "%Windir%\\system32\\inetsrv\\gzip.dll";
httpCompressionCollection.AddElement(schemeElement);
adminManager.CommitChanges();
VBScript
Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set httpCompressionSection = adminManager.GetAdminSection("system.webServer/httpCompression", "MACHINE/WEBROOT/APPHOST")
Set httpCompressionCollection = httpCompressionSection.Collection
Set schemeElement = httpCompressionCollection.CreateNewElement("scheme")
schemeElement.Properties.Item("name").Value = "deflate"
schemeElement.Properties.Item("doStaticCompression").Value = True
schemeElement.Properties.Item("doDynamicCompression").Value = True
schemeElement.Properties.Item("dll").Value = "%Windir%\system32\inetsrv\gzip.dll"
httpCompressionCollection.AddElement(schemeElement)
adminManager.CommitChanges()