Co to jest odpowiedź 304 Not Modified?
Kod odpowiedzi serwera HTTP 304 Not Modified wskazuje, że żądany zasób nie został zmodyfikowany od czasu jego ostatniego załadowania, co oznacza, że nie ma potrzeby przesyłania go ponownie. Dla przeglądarek oznacza to, że buforowana wersja zasobu może zostać wyświetlona użytkownikowi. Dla robotów indeksujących, takich jak Googlebot, oznacza to, że nie ma potrzeby ponownego przeszukiwania strony, ponieważ nic się na niej nie zmieniło.
Jak to działa
Oto proste wyjaśnienie, jak działa odpowiedź 304 Not Modified:
-
Początkowe żądanie Gdy klient (przeglądarka lub crawler) żąda zasobu z serwera WWW po raz pierwszy, serwer wysyła żądany zasób z kodem HTTP 200 OK wraz z jego kodem skrótu, zwanym ETag. Klient rejestruje również czas, w którym zażądał strony/zasobu.
-
Kolejne żądania Gdy klient ponownie zażąda zasobu, serwer sprawdza nagłówki
If-None-Match
i/lubIf-Modified-Since
od klienta. Jest to znane jako warunkowe żądanie HTTP.If-None-Match
zawiera ETag (kod skrótu treści). Jeśli jest on zgodny z wartością na serwerze, oznacza to, że zawartość nie uległa zmianie i nie ma potrzeby jej ponownego ładowania (gdy zawartość się zmienia, zmienia się również jej kod skrótu).If-Modified-Since
zawiera datę i godzinę ostatniego żądania zawartości przez klienta. Jeśli serwer widzi, że zawartość nie zmieniła się od tej daty, nie ma potrzeby wysyłania zasobu do klienta.
-
Odpowiedź serwera W obu przypadkach, jeśli zawartość nie uległa zmianie, serwer odpowiada kodem HTTP 304.
W przypadku użycia zarówno If-None-Match
, jak i If-Modified-Since
, If-None-Match
ma pierwszeństwo przed If-Modified-Since
.
Zachowanie przeglądarki i robota indeksującego
Gdy przeglądarka otrzyma od serwera kod HTTP 304 Not Modified, wyświetli użytkownikowi wersję z pamięci podręcznej, co czyni go jednym z kodów przekierowania po stronie klienta. Dla robotów indeksujących otrzymanie odpowiedzi 304 oznacza, że mogą uniknąć ponownego pobierania tej samej zawartości, oszczędzając przepustowość i zasoby.
Dlaczego kod odpowiedzi 304 jest ważny?
W przypadku małych witryn internetowych korzyści z buforowania zapewniane przez kod HTTP 304 mogą nie być tak znaczące. Jednak w przypadku dużych witryn kod odpowiedzi 304 oferuje znaczne korzyści:
- Optymalizacja wydajności Wykorzystując zawartość buforowaną, przeglądarki mogą szybciej ładować strony dla użytkowników, poprawiając ogólne wrażenia użytkownika.
- Zarządzanie budżetem indeksowania W przypadku dużych witryn zarządzanie budżetem indeksowania ma kluczowe znaczenie. Robot indeksujący Google nie będzie ponownie indeksował stron, które nie uległy zmianie, pozwalając mu skupić się na nowych i zaktualizowanych treściach. Pomaga to zapewnić, że świeże treści są indeksowane bardziej efektywnie.
Najlepsze praktyki dotyczące korzystania z 304 Not Modified
- Ustaw odpowiednie nagłówki pamięci podręcznej Upewnij się, że serwer jest skonfigurowany do wysyłania odpowiednich nagłówków
ETag
iLast-Modified
. - Monitoruj wydajność pamięci podręcznej Regularnie sprawdzaj dzienniki serwera, aby zobaczyć, jak często wysyłane są odpowiedzi 304 i dostosuj zasady buforowania w razie potrzeby.
- Optymalizacja dostarczania treści Korzystaj z sieci dostarczania treści (CDN), które obsługują wydajne mechanizmy buforowania w celu zmniejszenia opóźnień i skrócenia czasu ładowania.
Bardziej szczegółowe informacje na temat kodów stanu HTTP i najlepszych praktyk dotyczących wydajności sieci i SEO można znaleźć w wiarygodnych źródłach, takich jak Mozilla Developer Network (MDN) i Google's Web Fundamentals.