Bagikan melalui


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:
  • HcCompressionDll
  • HcDoDynamicCompression
  • HcDoStaticCompression
  • HcDynamicCompressionLevel

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

  1. Pada taskbar, klik Manajer Server.
  2. Di Manajer Server, klik menu Kelola , lalu klik Tambahkan Peran dan Fitur.
  3. Di wizard Tambahkan Peran dan Fitur, klik Berikutnya. Pilih jenis penginstalan dan klik Berikutnya. Pilih server tujuan dan klik Berikutnya.
  4. 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.
    Cuplikan layar panel Performa diperluas dengan Kompresi Konten Statis dipilih dan Pemadatan Konten Dinamis disorot.
  5. Pada halaman Pilih fitur, klik Berikutnya.
  6. Pada halaman Konfirmasi pilihan instalasi, klik Instal.
  7. Pada halaman Hasil , klik Tutup.

Windows 8 atau Windows 8.1

  1. Pada layar Mulai, pindahkan penunjuk ke sudut kiri bawah, klik kanan tombol Mulai, lalu klik Panel Kontrol.
  2. Di Panel Kontrol, klik Program dan Fitur, lalu klik Aktifkan atau nonaktifkan fitur Windows.
  3. Perluas Layanan Informasi Internet, perluas World Wide Web Services, perluas Fitur Performa, lalu pilih Kompresi Konten Dinamis dan/atau Kompresi Konten Statis.
    Cuplikan layar memperlihatkan panel Fitur Performa di Mengaktifkan atau menonaktifkan fitur Windows halaman diperluas dan Pemadatan Konten Statis disorot.
  4. Klik OK.
  5. Klik Tutup.

Windows Server 2008 atau Windows Server 2008 R2

  1. Pada bilah tugas, klik Mulai, arahkan ke Alat Administratif, lalu klik Manajer Server.
  2. Di panel hierarki Manajer Server, perluas Peran, lalu klik Server Web (IIS).
  3. Di panel Server Web (IIS), gulir ke bagian Layanan Peran, lalu klik Tambahkan Layanan Peran.
  4. 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.
    Cuplikan layar memperlihatkan halaman Pilih Layanan Peran dengan node Performa diperluas dan Pemadatan Konten Dinamis disorot.
  5. Pada halaman Konfirmasi Pilihan Penginstalan, klik Instal.
  6. Pada halaman Hasil , klik Tutup.

Windows Vista atau Windows 7

  1. Pada bilah tugas, klik Mulai, lalu klik Panel Kontrol.
  2. Di Panel Kontrol, klik Program dan Fitur, lalu klik Aktifkan atau nonaktifkan Fitur Windows.
  3. Perluas Layanan Informasi Internet, lalu World Wide Web Services, lalu Fitur Performa.
  4. Pilih Http Compression Dynamic jika Anda ingin menginstal kompresi dinamis dan Kompresi Konten Statis jika Anda ingin menginstal kompresi statis.
    Cuplikan layar halaman Aktifkan atau nonaktifkan fitur Windows yang memperlihatkan node Fitur Performa diperluas dan H T T P Common Dynamics dipilih.
  5. 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()