Co to jest kod odpowiedzi HTTP 304 – Not modified? Jak działa w praktyce i kiedy jest używany? Jak rozwiązać problemy związane z HTTP 304?
Spis treściKod HTTP 304 nie jest najczęściej spotykanym kodem, odgrywa jednak istotną rolę. Warto z tego powodu wiedzieć, jakie jest jego zadanie i do czego można go wykorzystać. W domyśle powinien bowiem usprawniać działanie Twojego miejsca w sieci. Z jego pomocą może być ono jeszcze wygodniejsze i atrakcyjniejsze dla użytkowników. Co więcej, ma szansę działać sprawniej i szybciej dostarczać żądaną zawartość. Czasem jednak może się natomiast zdarzyć tak, że HTTP 304 zablokuje do niego dostęp odbiorcom. Wina za to może nawet nie być po Twojej stronie. Może wynikać po prostu z konfiguracji przeglądarki użytkownika końcowego. Warto natomiast w takich sytuacjach wiedzieć, co się dzieje i jakie to ma znaczenie dla witryny.
Co to jest kod HTTP 304 – Not Modified?
Jak dokładnie opisać rolę kodu HTTP, jakim jest przekierowanie 304 Not Modified? Najpierw warto skrótowo przybliżyć proces realizacji żądania internauty. Gdy wpisuje on adres strony w wyszukiwarce, ma ona za zadanie nawiązanie połączenia z serwerem. Co jednak, jeśli ma już w pamięci podręcznej (cache) daną witrynę? Wtedy musi najpierw zorientować się, czy posiada jej aktualną wersję. W tym celu wysyła żądanie „warunkowej weryfikacji”. Następnie porównuje swoją datę „ostatniej modyfikacji” z tą, którą przekaże jej serwer.
Co się dzieje, gdy zawartość plików przeglądarki oraz tych aktualnych jest taka sama? Serwer w takiej sytuacji wysyła w odpowiedzi na żądanie komunikat HTTP 304 Not Modified. To wskazanie dla wyszukiwarki, aby posługiwała się „swoją” kopią. Taka metoda w zamyśle ma sprawić, że witryny internetowe będą wczytywały się szybciej. Dzięki temu bowiem nie jest konieczne pobieranie za każdym razem zawartości strony internetowej z serwera.
Co się dzieje, jeśli przeglądarka nie ma aktualnej wersji plików? Wtedy są one po prostu ściągane na nowo i — ewentualnie — zapisywane znów w pamięci podręcznej. Serwer w takiej sytuacji wysyła kod HTTP 200. Użytkownikowi natomiast wyświetlana jest najnowsza wersja witryny.
Przekierowanie 304 w praktyce sprawia zatem, że do wyświetlenia strony nie jest potrzebne pobieranie jej plików. Wykorzystywany jest zapis obecny w przeglądarce, co przyśpiesza ładowanie. To zysk dla odbiorcy, bo nie musi zbyt długo czekać na realizację wprowadzonego żądania. Dostęp do konkretnego zasobu otrzymuje niemalże natychmiast. Działa to też na korzyść właściciela witryny. Stawia go to bowiem w dobrym świetle i przyciąga nowych użytkowników.
Kod HTTP 304 jest wspierany przez wszystkie najpopularniejsze przeglądarki internetowe:
- Chrome,
- Edge,
- Firefox,
- Opera,
- Safari.
Można zatem wykorzystywać go na stronach, niezależnie od tego, na jakim sprzęcie są one zwykle otwierane przez odbiorców.
Formuła
304 Not Modified
Do czego służy przekierowanie 304?
Przekierowanie 304 można wprowadzić na stronach o dowolnym charakterze. Dobrze sprawdzi się zarówno w przypadku blogów, jak i wizytówek czy stron firmowych. Jego atutem jest to, że dobrze radzi sobie z witrynami często aktualizowanymi. Dzięki niemu każda osoba, która odwiedzi Twoje miejsce w sieci, zawsze zobaczy najnowsze informacje. Gdy natomiast takie się nie pojawią od daty jej ostatniej wizyty, witryna załaduje się szybko.
To wygodne rozwiązanie, ale wykorzystywane obecnie stosunkowo rzadko. Wynika to z faktu, że potrafi ono przysporzyć stronie rozmaitych problemów. Zdarza się, że HTTP 304 pojawia się, gdy nie jest potrzebne. Problemem może być choćby błąd w pamięci przeglądarki. Brak możliwości wejścia na stronę z kolei negatywnie wpływa na prowadzenie interesów online. Administrator czy właściciel serwisu natomiast często nie ma żadnej kontroli nad tym, jakie błędy wyskakują w takich sytuacjach po stronie odbiorcy.
Przekierowanie 304 a SEO
Wykorzystywanie przekierowania 304 bywa korzystne szczególnie dla rozbudowanych stron. Wynika to z faktu, że zawierają one wiele elementów i są po prostu ciężkie. Pobieranie wszystkiego za każdym razem może zajmować wiele czasu. To negatywnie wpływa na komfort użytkowników, bo muszą oni czekać na wczytanie się witryny. Algorytmy Google promują natomiast witryny, które działają szybko i nie sprawiają większych problemów. Przyśpieszając zatem swoje miejsce w sieci, masz szansę wywalczyć wyższe miejsce w wynikach wyszukiwania.
Kod HTTP 304 to także ułatwienie podczas samej analizy witryny przez roboty indeksujące Google. Podczas powtórnego „prześwietlania” strony, zmniejszenie czasu jej wczytywania zadziała na Twoją korzyść. Roboty bowiem nie indeksują ponownie witryn, które już mają. Dzięki temu zajmą się np. Twoimi podstronami, na których wprowadzone były w ostatnim czasie modyfikacje. Szybciej pojawią się w wynikach wyszukiwania, przez co będą prędzej zdobywać klientów. To z kolei pozytywnie wpłynie na wyniki finansowe biznesu online, który prowadzisz.
Możliwe problemy z kodem HTTP 304 i ich rozwiązanie
Zdarza się, że użytkownikom kod HTTP 304 Not Modified wyświetli się w oknie przeglądarki. Zdarza się to, choć najczęściej powinien on działać tylko w tle. Wskazuje to na wystąpienie poważniejszego problemu. Zwykle wynika on z tego, że przeglądarka z jakiegoś powodu nie jest w stanie załadować plików witryny, które ma zapisane. Mogą być różne przyczyny takiego stanu rzeczy. Wynika to czasem np. z braku dostępu do plików, ich uszkodzenia czy innej sytuacji uniemożliwiającej wczytanie i zaktualizowanie posiadanych informacji.
Jak zapewne już się domyślasz, w znacznej mierze jest to kłopot występujący po stronie użytkownika. On też może sobie z tym poradzić na kilka sposobów. Z perspektywy właściciela strony WWW nie możesz nic z nimi zrobić. Opiszemy je poniżej więc tylko skrótowo, gdyby taki problem spotkał też kiedyś Ciebie:
- skanowanie w poszukiwaniu złośliwego oprogramowania – przeglądarki mogą padać ofiarą rozmaitych wirusów. Warto regularnie je prześwietlać, upewniając się, że nic nie zakłóca ich prawidłowej pracy;
- czyszczenie pamięci podręcznej przeglądarki – usunięcie obecnego w pamięci podręcznej pliku danej witryny sprawi, że po ponownym załadowaniu strony zostaną pobrane nowe informacje. To umożliwi przejście na stronę i prawidłowe działanie HTTP 304 w przyszłości;
- reset IP i opróżnienie DNS – problem z kodem 304 może wynikać z używania nieaktualnego adresu IP. Warto też opróżnić DNS przeglądarki, co w Google Chrome zrobisz poprzez wpisanie w pasku „chrome://net-internals/#dns„;
- wyłączenie rozszerzeń przeglądarki – niektóre rozszerzenia (szczególnie nieoficjalne) zakłócają prawidłową pracę przeglądarek.
Czy jest szansa na to, że problem z przekierowaniem HTTP 304 leży po stronie serwera? Taka sytuacja może mieć miejsce, ale dzieje się to sporadycznie. Jeśli korzystasz z Apache lub LiteSpeed, możesz poszukać w takim przypadku pliku .htaccess i sprawdzić konfigurację serwera. Powinien on znajdować się na Twoim serwerze w katalogu głównym witryny. Uzyskasz do niego dostęp z poziomu swojego konta hostingowego lub przy użyciu klienta FTP, takiego jak np. FileZilla lub innego programu do FTP/SFTP.
Po jego otwarciu znajdź sekcję mod_cache
. Niczego z niej nie usuwaj, ale wprowadź tymczasowe, nieszkodliwe zmiany. Spróbuj ją np. tymczasowo „wyłączyć” i zobaczyć, w jaki sposób wpłynie to na witrynę. W jaki sposób zrobić to szybko, łatwo i nieszkodliwie? Najlepiej będzie, jeśli zamienisz ją np. na komentarze, poprzez dodanie symbolu # w każdej linii. Zapisz zmiany i sprawdź, czy problem został rozwiązany.
Kod HTTP 304 nadal uniemożliwia otwarcie witryny? W takiej sytuacji skontaktuj się z firmą odpowiedzialną za Twój hosting lub serwer. Na swoim koncie klienta możesz też sprawdzić dziennik błędów i przekierowań, jeśli takie oferuje Twój usługodawca.
Inne kody HTTP
Poznaj pozostałe kody odpowiedzi HTTP, a w szczególności:
- Kody ℹ️ informacyjne, takie jak: HTTP 103 – Early Hints;
- Kody ✅ powodzenia, takie jak: HTTP 200;
- Kody ↩️ przekierowań, takie jak: przekierowanie 301, przekierowanie 302, HTTP 304 (Not modified), przekierowanie 307, przekierowanie 308 czy błąd HTTP 310 (Too many redirects).
- Kody 🛑 błędów po stronie klienta, takie jak: Błąd 400 (Bad Request), Błąd 401 (Unauthorized), Błąd 403 (Forbidden), Błąd 404 (Nie znaleziono), Błąd 405 (Method Not Allowed), Błąd 408 (Request Timeout), Błąd 410 (Gone), Błąd 429 (Too Many Requests) czy Błąd 499 (Client closed request);
- Kody ⚠️ błędów po stronie serwera, takie jak: Błąd 500 (Internal Server Error), Błąd 501 (Not implemented), Błąd 502 (Bad Gateway), Błąd 503 (Service Unavailable), Błąd 504 (Gateway Timeout), Błąd 505 (HTTP Version Not Supported) czy Błąd 509 (Bandwidth Limit Exceeded).
Zobacz też pełną listę kodów odpowiedzi HTTP wraz z wyjaśnieniami.