Statusy HTTP to inaczej komunikaty wysyłane przez serwer do klienta (najczęściej przeglądarki). Niejako informują, co się z nim działo od wysłania żądania aż do wyświetlenia wyników użytkownikowi. Często nie jesteśmy nawet świadomi, jakie procesy zaszły w tle, najczęściej będąc tylko świadkami statusu
HTTP 404, kiedy to strona internetowa nie wyświetliła się prawidłowo. Ale czy wiesz, że statusów HTTP jest o wiele więcej? Poniżej przedstawiamy wszystkie z nich, pogrupowane w 5 kategoriach:
- 1xx – kody informacyjne / (z ang. Informational)
- 2xx – kody powodzenia / (z ang. Succesful responses)
- 3xx – kody przekierowania / (z ang. Redirects)
- 4xx – kody błędu aplikacji klienta / (z ang. Client errors)
- 5xx – kody błędu serwera / (z ang. Server errors)
Kody informacyjne – 1xx
Statusy z początkiem „1” są informacją, że serwer przyjął żądanie, które aktualnie jest przetwarzane. Poniżej przedstawiamy najpopularniejsze z nich:
- 100 Continue – kontynuuj; prośba o ponowne wysłanie zapytania.
- 101 Switching Protocols – zmiana protokołu.
- 102 Prfocessing – przetwarzanie; oznacza, że serwer otrzymał żądanie, ale odpowiedź nie jest jeszcze gotowa.
- 103 Early hints – kod, który pozwala przeglądarce na wstępne ładowanie zasobów, zanim jeszcze odpowiedź strony będzie gotowa. Poprawnie zaimplementowany pozwala na polepszenie wskaźników mierzących szybkość i wydajność stron internetowych, czyli Google Core Web Vitals, na temat których przeczytać można więcej w naszym innym artykule: Core Web Vitals – czym są i jak je mierzyć?
- 110 Connection Timed Out – przekroczono czas połączenia; serwer zbyt długo nie odpowiada.
- 111 Connection Refused – połączenie zostało odrzucone.
Kody powodzenia – 2xx
Kody powodzenia z początkiem “2” oznaczają, iż serwer otrzymał, a następnie poprawnie przetworzył żądanie klienta. Pośród nich możemy wyróżnić:
- 200 OK – zawartość została poprawnie wyświetlona.
- 201 Created – utworzono; podobne do statusu 200, jednak w tym przypadku utworzona została nowa zawartość (np. nowa strona).
- 202 Accepted – zaakceptowano; żądanie zostało zaakceptowane, jednak nie zostało jeszcze przetworzone.
- 203 Non-Authoritative Information – informacja nieautorytatywna; coś zostało zmienione i informacja nie odpowiada dokładnie pierwotnej odpowiedzi serwera, a pochodzi z lokalnych lub zewnętrznych kopii.
- 204 No content – brak zawartości; żądanie zostało poprawnie przetworzone, jednak w tym przypadku nie istnieje żadna treść.
- 205 Reset content – przywróć zawartość; zapytanie zostało zrealizowane przez serwer i przeglądarka powinna przywrócić pierwotny wygląd dokumentu, np. czyszcząc uzupełniony formularz.
- 206 Partial content – częściowa zawartość; serwer zrealizował zapytanie, jednak przesłał tylko część zawartości.
Kody przekierowania – 3xx
Kody przekierowania informują, że serwer musiał wykonać jeszcze jakieś zadanie, zanim mógł wyświetlić wyniki. Najczęściej można mówić o przekierowaniu z jednego adresu URL na drugi. Przykładem jest sytuacja, kiedy w pasek przeglądarki wpiszemy https://www.artefakt.pl, a po przejściu na wybraną stronę dokładnym adresem URL w pasku będzie https://www.artefakt.pl. Choć mogłoby się wydawać, że oba adresy są tym samym, to z perspektywy procesu pozycjonowania i w rzeczywistości byłyby wobec siebie duplikatami. Najważniejsze kody przekierowań to:
- 300 Multiple Choices – wiele możliwości; istnieje więcej sposobów na obsłużenie danego zapytania, a tym samym możemy otrzymać wybór jednoznacznego zapytania spośród możliwych.
- 301 Moved Permanently – przekierowanie stałe; oznacza, iż zasoby z danej strony zostały na zawsze przeniesione pod inny adres. Jest to prawdopodobnie najczęściej używane przekierowanie, ponieważ pozwala również na częściowe przeniesienie mocy linków zewnętrznych – prowadzących pod stary adres – na nowy adres URL, na który zostaliśmy przekierowani.
- 302 Found / Moved Temporarily – znaleziono / przekierowanie tymczasowe; oznacza, że zasoby z danej strony chwilowo znajdują się pod innym adresem. Warto zaznaczyć, iż takie przekierowanie nie przenosi mocy linków zewnętrznych jak przekierowanie 301.
- 303 See Other – zobacz inne; informacja o tym, iż zasoby z danej strony znajdują się gdzie indziej. Jest to właściwe przekierowanie w odpowiedzi na żądania metodą POST.
- 304 Not modified – nie zmieniono; informacja o tym, że zasoby na stronie nie zostały zmodyfikowane zgodnie z zapytaniem klienta.
- 305 Use Proxy – użyj proxy; do danego zasobu należy się odwołać poprzez serwer proxy podany w Location odpowiedzi
- 310 Too Many Redirects – zbyt wiele przekierowań. Zaleca się, aby łańcuch przekierowań nie był zbyt długi.
Kody błędu aplikacji klienta – 4xx
Kody błędu aplikacji klienta oznaczają, że klient (czyli w naszym przypadku najczęściej przeglądarka) napotkał jakiś błąd. Przeważnie jest wyjaśniony za pomocą kodu 4xx, spośród których najbardziej popularne to:
- 400 Bad Request – nieprawidłowe zapytanie wynikające na przykład z niepoprawnej pisowni.
- 401 Unauthorized – nieautoryzowany dostęp; żądanie zasobu wymaga uwierzytelnienia.
- 403 Forbidden – zabroniony; oznacza, że użytkownik nie ma uprawnień pozwalających na dostęp do danych zasobów.
- 404 Not Found – nie znaleziono; serwer nie odnalazł zasobu pod podanym adresem URL, a dodatkowo nie ma informacji, aby kiedykolwiek coś pod nim istniało
- 405 Method Not Allowed – niedozwolona metoda; metoda żądania jest niedozwolona w przypadku danego zasobu. W odpowiedzi uzyskujemy również informację na temat dozwolonych metod.
- 406 Not Acceptable – niedozwolone; żądany zasób nie może zwrócić odpowiedzi według informacji podanych w zapytaniu klienta
- 407 Proxy Authentication Required – wymagane uwierzytelnienie do proxy, czyli serwera pośredniczącego
- 408 Request Timeout – koniec czasu oczekiwania na żądanie; klient nie przesłał zapytania w odpowiednim czasie.
- 409 Conflict – konflikt; żądanie nie mogło zostać zrealizowane, ponieważ wystąpił konflikt z obecnym statusem zasobu.
- 410 Gone – usunięto; podobnie jak przy odpowiedzi 404 żądany zasób nie jest już dostępny, a ponadto nie będzie dostępny pod tym adresem nigdy więcej.
- 429 Too Many Requests – użytkownik wysłał zbyt wiele żądań.
Kody błędu serwera – 5xx
Kody błędu serwera są informacją, że błąd wystąpił po stronie serwera, który z kolei nie jest w stanie poprawnie przetworzyć zapytania. Do kodów 5xx należą:
- 500 Internal Server Error – wewnętrzny błąd serwera, podczas którego serwer nie mógł określić, co konkretnie go spowodowało.
- 501 Not Implemented – nie zaimplementowano; metoda żądania nie jest obsługiwana przez serwer.
- 502 Bad Gateway – błąd bramy; serwer spełniający funkcję pośrednika otrzymał niepoprawną odpowiedź od innego serwera.
- 503 Service Unavailable – usługa niedostępna; serwer nie jest w stanie przetworzyć zapytania przez problemy związane z hostem.
- 504 Gateway Timeout – przekroczony czas bramy; serwer nie otrzymał w ustalonym czasie odpowiedzi od wskazanego serwera.
- 505 HTTP Version Not Supported – nieobsługiwana wersja http; serwer nie obsługuje wersji HTTP wskazanej w zapytaniu.
Powyższe kody HTTP nie są wszystkimi, na które możemy natknąć się, przeglądając strony internetowe. Ich znajomość powinna być przydatna dla osób posiadających własną stronę lub nawet zwykłych internautów, którzy dzięki temu mają świadomość, co zadziało się z daną stroną. Niech krótki opis każdego z nich posłuży jako wskazówka, w jaki sposób można je wykorzystać na swojej stronie internetowej lub w jaki sposób można zaradzić problemom, kiedy napotkamy któryś z wymienionych kodów błędu.