yslow mówi, że etagi są źle skonfigurowane. jak poprawnie skonfigurować etagi na IIS7?

20

uruchamiając ySlow na obsługiwanej przeze mnie stronie, zauważyłem, że zgłoszono, że etagi są źle skonfigurowane dla obrazów strony (np. * .jpg, * .png, * .gif). Czy ktoś może wyjaśnić, co muszę zrobić, aby IIS7 prawidłowo wydawał te etagi?

MikeJ
źródło

Odpowiedzi:

12

Etykiety są w porządku, o ile nie podajesz treści z wielu serwerów. Jeśli serwujesz tylko z jednego serwera, zostaw je tam. Nie ranią. A jeśli nie chcesz, aby YSlow narzekał na nie, kliknij przycisk Edytuj obok elementu wyboru Zestawów reguł i edytuj profil YSlow (V2). Po prostu odznacz opcję „Konfiguruj tagi encji (Etagi)”.

Ionuț G. Stan
źródło
7
+1 YSlow narzeka na wiele rzeczy, które nie wpływają na „zwykłe śmiertelne” strony internetowe. (Nie, YSlow, nie mam i nie potrzebuję CDN. Proszę, przestań już narzekać.)
Gerald Combs
Prawda o zmianie zestawu reguł.
MikeJ
11

YSlow nie narzeka, że ​​się mylą (chociaż tak mówi), ale narzeka, że ​​nie są potrzebne. Jedynym sposobem, aby YSlow się o tym zamknął, jest ich wyłączenie.

Dobrą rzeczą jest to, że właśnie dzisiaj to zrobiłem wcześniej!

Otwórz menedżera IIS, kliknij serwer i przejdź do nagłówków odpowiedzi HTTP. Kliknij przycisk „Dodaj ...” i pod nazwą wpisz:

ETag

(wielkość liter ma znaczenie). W polu Wartość wpisz

""

(to dwa podwójne cudzysłowy)

I zaczynają się ETag!

Mark Henderson
źródło
Jak podkreślają inni, należy usuwać znaczniki ETag tylko wtedy, gdy wiesz, że musisz; w wielu przypadkach tak nie będzie.
Bobby Jack
1
Tak może być, ale faktem jest, że odpowiedź poprawnie odpowiada na pytanie.
Mark Henderson
1
Pytanie brzmiało: „Jak uzyskać IIS7, aby poprawnie wystawiał te etagi?”. Waszą odpowiedzią było całkowite zaprzestanie wydawania znaczników ETag, co jest możliwym spadkiem wydajności i prawdopodobnie niepotrzebnym (w pytaniu nie wspomniano o użyciu CDN).
Bobby Jack
2
@Bobby: OP domyślnie pyta: „Jak zmusić IIS7 do prawidłowego wydania tych etagów zgodnie z definicją YSlow ?”. a jedyną „poprawną” konfiguracją, jeśli chodzi o YSlow, jest ich wyłączenie.
Kip
1
@ Kip, nie, niejawna część jest niejawna i nie można jej zgadnąć. Ale zakładając, że OP jest rozsądną osobą, prawdopodobnie chciał powiedzieć „według YSlow konfiguracja wydaje się być nieoptymalna, jak mogę ją zoptymalizować?” - A potem ta odpowiedź jest trochę śmieszna. To tak jakby „dlaczego narzeka mój test jednostkowy?” - „Wystarczy usunąć test jednostkowy, a nie będzie już narzekać!”
chiccodoro,
3

Zobacz podobne pytanie StackOverflow .

SirStan
źródło
3

W systemie iis 6 możesz dodać niestandardowy nagłówek dla „ETag” = „”

W iis 7 dodaj regułę przepisywania danych wychodzących w następujący sposób:

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

IIS 7 zastąpi niestandardowe nagłówki i wszystkie inne rozwiązania zaproponowane w różnych innych odpowiedziach dotyczących tego samego problemu. Reguły wychodzące to jedyny element, który wydaje się działać, ponieważ zastępuje wszystko, co jest ustawione tuż przed jego zwróceniem do użytkownika. Ta proponowana reguła wychodząca pasuje do dowolnej zmiennej serwera o nazwie, RESPONSE_ETago ile wartość RESPONSE_ETagma jeden lub więcej znaków, i przepisuje wartość na pusty ciąg.

AndrewPK
źródło
2

Proszę zobaczyć odpowiedź na Ustaw nagłówek odpowiedzi serwera w IIS7, aby uzyskać częściowe rozwiązanie. Tak, kompletne rozwiązanie byłoby naprawdę miłe, ale wezmę to, co mogę.

jerhewet
źródło
1

Lepiej użyj tego:

<outboundRules>
  <rule name="Remove ETag">
    <match serverVariable="RESPONSE_ETag" pattern="(.*)\:(.*)" />
    <action type="Rewrite" value="{R:1}" />
  </rule>
</outboundRules>
użytkownik197693
źródło
3
Witaj w Server Fault! Chociaż bajty magiczne są z pewnością miłe, jest niesamowite dla innych osób, które je czytają, jeśli wyjaśnisz, dlaczego jest to poprawne.
Falcon Momot,