Bądź na bieżąco - RSS

ETag – co to jest i z czym to się je

Lipiec 22nd, 2009 Kategoria Optymalizacja Autor: VizjereiX

Nie czuję się specjalistą z dziedziny nagłówków HTTP. Jednak nie udało mi się znaleźć żadnej dobrej strony po polsku, która omawiałaby czym są Entity Tags. Postanowiliśmy więc podzielić się wiedzą, jaką sami uzyskaliśmy przeszukując sieć oraz poprawiając nasze strony www.

Definicja

ETag to specjalny znacznik wysyłany wraz z dokumentem przez serwer www. Jego zadanie jest proste – ma informować o tym, czy dokument uległ zmianie i czy jest konieczność jego ponownego pobrania z serwera.

Jak tworzone są ETagi

ETag tworzony jest zazwyczaj przez serwer www na podstawie rozmiaru, czasu ostatniej modyfikacji czy sumy kontrolnej pliku. Jest oczywiście możliwość ręcznego dodawania takich tagów, np. dzięki skryptom PHP. Moim zdaniem, nie warto zajmować się tym samemu, gdy Apache może zrobić to za nas.

Jak my to robimy

Dla programistów Programy optymalizacja jest sprawą bardzo ważną. Dlatego nie zadowoliliśmy się informacją, że ETagi istnieją – zaczęliśmy je wykorzystywać, poprawiając osiągi tworzonych przez nas stron www. W katalogu głównym strony www umieszczamy plik .htaccess, będący instrukcją dla serwera www. Jego treść wygląda następująco:

FileETag MTime Size

Te kilka znaków pozwala zaoszczędzić sporo transferu. Instrukcje te mówią: kiedy wysyłasz plik z serwera, dodaj do niego ETag pliku (FileETag) używając do jego budowy daty ostatniej modyfikacji tego pliku (MTime) i rozmiaru tego pliku (Size). Przeglądarka zapamiętuje ten znacznik. Kiedy następnym razem poprosi o ten sam plik doda jego ETag do żądania. Jeśli plik nie uległ zmianie serwer zamiast wysyłać kod 200 OK, odpowiem kodem 304 Not Modified. Oznacza to, że przeglądarka posiada najnowszą wersję dokumentu i może odczytać ją z cachu, bez konieczności pobierania z serwera.

Takie „dobre praktyki programistyczne” świadczą o kunszcie profesjonalisty. Ktoś, kto używa tylko narzędzi WYSWIG, a nie potrafi optymalizować tej strony, nie może twierdzić, że tworzy strony www. Jeśli chcesz mówić o sobie profesjonalista – zacznij używać ETagów.

3 Komentarze/y dla “ETag – co to jest i z czym to się je”

  1. mrskuzaNo Gravatar Napisał/a:

    Ciekawy post. Szczególnie podoba mi się zdanie o profesjonalistach na końcu postu :)


  2. ciemborNo Gravatar Napisał/a:

    Hmm… a nie wiesz dlaczego Yahoo (YSlow) zaleca wyłączenie ETagów?


  3. VizjereiXNo Gravatar Napisał/a:

    A zaleca? Kiedy pisałem ten artykuł (2 lata temu), zdecydowanie zalecali jego używanie, ale w sposób właściwy, tzn generowanie go rzeczywiście tak, aby pomagał, a nie był dodatkowym narzutem.

    Z resztą na stronie Yahoo developers nadal piszą, że ETagi warto stosować, ale z głową – tzn. trzeba je wyłączyć, kiedy nie przynoszą zysku. Ale to raczej ogólna wskazówka, a nie tylko dotycząca tego mechanizmu.


Napisz Komentarz