Wszystko co powinieneś wiedzieć o błędzie 404.

Najbardziej chyba znanym i rozpoznawanym kodem odpowiedzi HTTP jaki większość użytkowników Internetu zna jest kod 404 Page Not Found (dla uproszczenia we wpisie będę posługiwał się uproszczoną nazwą„błąd 404”).

Kojarzysz go?

Czy zastanawiałeś się kiedyś, co on oznacza?

Czy nauczony doświadczeniem, wracasz na stronę główną i nie klikasz więcej w link, który powoduje wyświetlenie błędu?

Wreszcie, czy wiesz, że poza tym jednym jest wiele innych kodów, które jako tester powinieneś wiedzieć, co mniej więcej oznaczają (setkami patrząc) i jak je znaleźć?

Co oznacza błąd 404?

Błąd 404 to kod odpowiedzi HTTP, który oznacza, że strony, którą chcesz otworzyć, nie można znaleźć na serwerze. Automatycznie kojarzymy ten błąd z całą stroną i to jest OK, ponieważ zazwyczaj widzimy jego skutki, gdy dotyczy on strony. Warto jednak wiedzieć, że możesz ten kod zobaczyć również w konsoli programisty i może on dotyczyć elementu strony jak na przykład obrazka.

Jakich aplikacji dotyczą kody odpowiedzi HTTP?

Kody odpowiedzi HTTP są powiązane z testami stron WWW, w tym sklepów internetowych i wszelkiego rodzaju aplikacji przeglądarkowych (jak np. obsługa rejestracji na udział w wydarzeniu).

Warto, żebyś znał i wiedział, choć cokolwiek o podstawowych kodach odpowiedzi HTTP, które możesz spotkać podczas swojej pracy. Na końcu tego wpisu znajdziesz ich uproszczoną listę. Ważne byś wiedział jak pisać zgłoszenia odnośnie do tego typu błędów, jaki im nadać priorytet, oraz, czy w ogóle zgłaszać błąd dla każdego kodu dotyczącego błędu.

W jakich sytuacjach najczęściej trafiamy na błąd 404?

Przychodzą mi do głowy te naturalne, w które nie ingerujemy:

  • Klikam w link w treści strony (czy to w tekście, czy w menu) i otrzymuję informację, że strona nie istnieje.
  • Klikam w link prowadzący do strony z wyszukiwarki jak Google i otrzymuję kod 404.
  • Strona wczytuje się, ale w niektórych jej miejscach są duże białe pola z „X” w środku.

Próba wywołania błędu 404 przez testera to zmiana adresu strony, którą chcemy otworzyć. Czyli dodanie lub usunięcie w adresie jednej literki (nie w adresie domeny a w adresie strony powiązanej z tą domeną). Przykładowo była strona https://www.nazwa_domeny.pl/adres_strony/ a ja zmieniam jej adres na https://www.nazwa_domeny.pl/adres_stron/.

Co jest powodem wystąpienia błędu 404?

Przychodzą mi do głowy trzy typowe przyczyny błędów 404:

  • Zmiana adresu strony, było https://www.wyszkolewas.com.pl/typy-bledow-zglaszanych/, jest https://www.wyszkolewas.com.pl/typy-bledow-zglaszanych-przez-testera. Zmianę wprowadził administrator strony, zapomniał jednak utworzyć automatyczne przekierowanie z pierwszego na drugi adres. W takiej sytuacji, za każdym razem, gdy serwer zostanie poproszony o wyświetlenie strony z adresu pierwszego, otrzymam odpowiedź z kodem 404.
  • Usunięcie strony z serwera i nieutworzenie przekierowania.
  • Zmiana nazwy kategorii, tagu na stronie i nieutworzenie przekierowania.

Błąd 404 obsłużony a błąd 404 nieobsłużony.

Błąd obsłużony może być na dwa sposoby.

  • Pierwszym jest przekierowanie automatyczne na inną stroną.
  • Drugi to wyświetlenie specjalnie utworzonej do tego strony z informacją, że strona o wskazanym adresie nie istnieje.
Przykład obsłużonego błędu 404.
Przykład obsłużonego błędu 404.

Przekierowanie, czyli zapisanie, że za każdym razem, gdy jest prośba o wyświetlenie strony „A” ma być wyświetlona strona „B”.

Błąd nieobsłużony to często białe tło z napisem 404, na stronie nie ma menu, ani grafik.

Przykład nieobsłużonego błędu 404.
Przykład nieobsłużonego błędu 404.

Jak sprawdzić, jakie kody odpowiedzi pojawiają się po wczytaniu strony?

Najprostszą metodą jest otworzenie narzędzi deweloperskich w przeglądarce. Robisz to z menu przeglądarki.

Otwórz dowolną przeglądarkę typu Firefox, Chrome. Wciśnij F12, komenda wywoła konsolę programisty (1). W pasek adresu wpisz żądny adres www (2). Przejdź na zakładkę „sieć” albo „network” (3). W kolumnie “stan” albo “status” (4) znajdują się wszystkie komunikaty wyświetlane dla danej strony.

Konsola programisty użyta w celu sprawdzenia kodu odpowiedzi HTTP
Konsola programisty użyta w celu sprawdzenia kodu odpowiedzi HTTP

Na moim przykładzie, widzisz kody 200, pięknie, ale co one oznaczają?

Kod 200 oznacza, że żądanie wyświetlenia strony się powiodło, zostało zrozumiane przez serwer, oraz przez niego potwierdzone. Na liście nie widać żadnych błędów, czyli wszystkie elementy znajdują się na serwerze, są dostępne, elementy strony zostały przesłane na komputer wysyłający zapytanie, oraz poprawnie zagregowane przez przeglądarkę i wczytane, oraz graficznie wyświetlone poprawnie.

Kiedy należy zgłosić błąd do kodu 404?

Gdy wystąpienie kodu powoduje błąd w działaniu aplikacji – zamiast obrazka na stronie wyświetla się wielki X na przykład, nie ma alternatywnego tekstu dla niego, wyraźnie widać, że obrazek powinien się wyświetlić.

Błąd należy zgłosić, kiedy testujesz czy aplikacja prawidłowo obsługuje próby otworzenia nieistniejącej strony i po wczytaniu strony zamiast treści masz wyświetlenie nieobsłużonego komunikatu o błędzie. Wówczas zamiast strony otwiera się wielki napis 404 Strona nieznaleziona. Błąd traktujemy jako obsłużony i nie zgłaszam defektu, gdy zamiast informacji „404 Strona nieznaleziona” mam informację, że otwierana strona nie istnieje z linkiem do strony głównej, albo automatycznie następuje przekierowanie na inną stronę, np. stronę główną.

Błąd zgłaszam również, gdy wiem, że strona powinna się wczytać prawidłowo, ale zamiast niej mam komunikat obsłużony opisany powyżej albo przekierowanie na stronę główną.

Poniższa tabelka w uproszczony sposób tłumaczy, kiedy zgłaszać, a kiedy nie zgłaszać błędu.

Błąd zgłaszam gdy jest nieobsłuzony oraz gdy otrzymuję prawidłową stronę 404 i wiem że strona nieistnieje.
Kiedy zgłosić błąd dla odpowiedzi 404?

Kody błędów, na które możemy się natknąć, ujęte są w 5 grup:

  • 100 – komunikaty informacyjne, informują, że żądanie zainicjowane przez przeglądarkę jest kontynuowane
  • 200 – kody powodzenia, potwierdzenia, zwracane są przez przeglądarkę w momencie, gdy żądanie zostało pomyślnie odebrane, zrozumiane, oraz potwierdzone przez serwer, który zwrócił żądane treści
  • 300 – kody przekierowania, pojawiają się w momencie, gdy dany zasób, do którego odnosi się żądanie, obecnie czasowo, lub stale znajduje się pod innym adresem
  • 400 – kody błędu komunikacji klienta, występują, gdy pojawia się problem z wysłanym żądaniem, które nie może zakończyć się powodzeniem (brak zasobów, usunięta strona)
  • 500 – kody błędu serwera HTTP, informuje, że żądanie zostało otrzymane, potwierdzone, jednak ze względu na błąd serwera nie może zostać spełnione.

Szczegółową listę wraz z opisami możesz zobaczyć na stronie Wikipedii.

Waldemar Szafraniec

Nazywam się Waldemar Szafraniec. Karierę testera rozpocząłem w 2012 roku. Od początku pracy w zawodzie wiedziałem, że będzie to coś więcej niż tylko praca. Obecnie praca jest również moim hobby. Jednym z moich obowiązków w obecnym miejscu pracy jest rekrutowanie nowych testerów oraz szkolenie ich. Sam stale podnoszę swoje kwalifikacje uczestnicząc w szkoleniach (ISTQB, ISTQB Advanced Level – Test Analyst). Szkolę ludzi w dziedzinie testów manualnych od 2014 roku. Jestem trenerem, ponieważ wiem, że dobrze mi wychodzi przekazywanie wiedzy, wiem jak praca testera wygląda oraz mam doświadczenie w rekrutacji.

Ten post ma 2 komentarzy

  1. Mariusz

    Cześć!
    Fantastyczny blog, czytam z miłą chęcią.

    W powyższym artykule, w grafice o zgłaszaniu błędu 404 zniknęła spacja „nie_istnieje”.
    Pozdrawiam

    1. Waldemar Szafraniec

      Cześć!
      Cieszę się bardzo, że się podoba 🙂
      dzięki za zwrócenie uwagi postaram się poprawić,
      Pozdrawiam

Dodaj komentarz