AWWW-1st3.6-w04.tresc-1.1-Slajd18
Kontrola spójności bufora w oparciu o identyfikator wersji
Buforowanie w oparciu o identyfikator wersji opiera się na założeniu, że z każdym dokumentem znajdującym się po stronie serwera HTTP związano łańcuch znakowy nazwany identyfikatorem wersji (entity tag, ETag). Najważniejszą własnością identyfikatora wersji jest to, że ulega zmianie zawsze wtedy, gdy zmieniana jest treść oryginalnego dokumentu. W wielu implementacjach serwerów HTTP identyfikatory wersji są generowane na podstawie sumy kontrolnej dokumentu. Serwer HTTP umieszcza identyfikator wersji przesyłanego dokumentu w polu nagłówkowym ETag.
Wraz z kopiami dokumentów klient HTTP zapisuje w buforze ich identyfikatory wersji, a następnie formułuje warunkowe żądania HTTP, informując serwer HTTP o posiadanej wersji dokumentu. Identyfikator wersji dokumentu jest umieszczany w polu nagłówkowym If-None-Match. Serwer HTTP porównuje identyfikator wersji otrzymany od klienta HTTP z aktualnym identyfikatorem wersji oryginalnego dokumentu i bądź przesyła nową postać dokumentu (jeżeli był on modyfikowany), bądź też odpowiada kodem zwrotnym 304 (Not Modified), zezwalając klientowi HTTP na użycie kopii z bufora.