yslow mengatakan bahwa etag tidak terkonfigurasi. cara mengkonfigurasi etag dengan benar di IIS7?


20

menjalankan ySlow di situs web yang saya dukung, saya perhatikan dilaporkan bahwa etag salah konfigurasi untuk gambar situs (mis. * .jpg, * .png, * .gif). Adakah yang bisa membantu menjelaskan apa yang harus saya lakukan agar IIS7 mengeluarkan etag ini dengan benar?

Jawaban:



12

Etag tidak masalah selama Anda tidak menayangkan konten dari beberapa server. Jika Anda hanya melayani dari satu server, maka biarkan di sana. Mereka tidak terluka. Dan jika Anda tidak ingin YSlow mengeluh tentang mereka, lalu klik tombol Edit di dekat elemen pilih Rulesets dan edit profil YSlow (V2). Hapus centang opsi "Konfigurasikan tag entitas (Etag)".


7
+1 YSlow mengeluh tentang banyak hal yang tidak memengaruhi situs web "belaka". (Tidak YSlow, saya tidak punya dan tidak perlu CDN. Tolong berhenti merengek.)
Gerald Combs

Benar tentang perubahan aturan yang ditetapkan.
MikeJ

11

YSlow tidak mengeluh bahwa mereka salah (meskipun itu yang dikatakan), tetapi mengeluh bahwa mereka tidak diperlukan. Satu-satunya cara agar YSlow tutup mulut tentang ini adalah dengan menonaktifkannya.

Hal yang baik adalah, saya baru saja melakukannya sendiri hari ini!

Buka manajer IIS Anda, klik pada server, dan pergi ke HTTP Response Headers. Klik tombol "Tambah ...", dan di bawah nama, masukkan:

ETag

(hal - hal sensitif). Di bawah Nilai, masukkan

""

(Itulah dua tanda kutip ganda)

Dan ETag menghilang!


Seperti orang lain tunjukkan, Anda hanya harus menghapus ETag jika Anda tahu Anda perlu; dalam banyak kasus, ini tidak akan terjadi.
Bobby Jack

1
Mungkin itu masalahnya, tetapi faktanya adalah bahwa jawaban tersebut menjawab pertanyaan dengan benar.
Mark Henderson

1
Pertanyaan yang diajukan adalah 'bagaimana saya membuat IIS7 untuk menerbitkan etag ini dengan benar?'. Jawaban Anda adalah untuk berhenti mengeluarkan ETag sama sekali, yang merupakan hit kinerja yang mungkin, dan kemungkinan tidak perlu (tidak disebutkan penggunaan CDN dalam pertanyaan).
Bobby Jack

2
@ Bobby: OP secara implisit bertanya "bagaimana cara saya membuat IIS7 mengeluarkan etag ini dengan benar seperti yang didefinisikan oleh YSlow ?". dan satu-satunya konfigurasi "yang benar", sejauh menyangkut YSlow, adalah menonaktifkannya.
Kip

1
@Kip, tidak, bagian implisitnya implisit, dan Anda tidak bisa menebaknya. Tetapi dengan anggapan bahwa OP adalah orang yang beralasan, dia mungkin ingin mengatakan "menurut YSlow konfigurasi tampaknya suboptimal, bagaimana saya bisa membuatnya optimal?" - Dan jawaban ini agak lucu. Itu seperti "mengapa unit test saya mengeluh?" - "Hapus saja unit test, dan itu tidak akan mengeluh lagi!"
chiccodoro


3

Di iis 6, Anda dapat menambahkan header khusus untuk 'ETag' = ""

Di iis 7, tambahkan aturan penulisan ulang keluar sebagai berikut:

<outboundRules>
  <rule name="Remove ETag">
    <match serverVariable="RESPONSE_ETag" pattern=".+" />
    <action type="Rewrite" value="" />
  </rule>
</outboundRules>

IIS 7 akan menimpa header kustom, dan semua solusi lain yang diajukan dalam berbagai jawaban lain mengenai masalah yang sama. Aturan keluar adalah satu-satunya item yang tampaknya berfungsi karena menimpa apa pun yang ditetapkan sebelum dikembalikan ke pengguna. Aturan keluar yang diusulkan ini cocok dengan variabel server apa pun yang dinamai RESPONSE_ETagselama nilai RESPONSE_ETagmemiliki satu karakter atau lebih dan menulis ulang nilai menjadi string kosong.



1

Lebih baik gunakan ini:

<outboundRules>
  <rule name="Remove ETag">
    <match serverVariable="RESPONSE_ETag" pattern="(.*)\:(.*)" />
    <action type="Rewrite" value="{R:1}" />
  </rule>
</outboundRules>

3
Selamat Datang di Kesalahan Server! Meskipun byte ajaib memang bagus, itu bagus untuk orang lain membacanya jika Anda menjelaskan mengapa ini benar.
Falcon Momot
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.