Odpowiedzi HTTP - co to takiego?
Odpowiedzi HTTP to składające się z trzech cyfr kody zwracane przez serwer w odpowiedzi na żądanie klienta (np. przeglądarki internetowej albo aplikacji mobilnej). Informują one o tym, czy realizacja żądania zakończyła się z sukcesem, czy może wystąpił błąd albo niezbędne jest dodatkowe działanie ze strony klienta.
Trzycyfrowa struktura kodów odpowiedzi HTTP pozwala na szybką orientację co do informacji przekazywanych przez serwer. Pierwsza cyfra określa ogólną kategorię odpowiedzi (od 1xx do 5xx), a pozostałe dwie precyzują jej znaczenie. Kody te są standardem ustalonym przez IETF (Internet Engineering Task Force). W praktyce oznacza to, że kody odpowiedzi HTTP są ujednoliconym i powszechnie akceptowanym sposobem komunikacji między serwerem a klientem, obowiązującym na całym świecie. Niezależnie od tego, z jakiego serwera lub przeglądarki korzysta użytkownik, obowiązuje te same odpowiedzi HTTP.
Jak sprawdzić kod odpowiedzi HTTP? Praktyczne sposoby
Jak sprawdzić kody odpowiedzi HTTP? Można w tym celu skorzystać z różnych narzędzi. Oto kilka rozwiązań:
- Sprawdzanie kodu HTTP za pomocą cURL – możliwe jest wysłanie żądania HTTP do punktu końcowego aplikacji i uzyskanie odpowiedzi. Przy użyciu polecenia „curl -I https://example.com” można np. sprawdzić status serwera.
- Sprawdzanie kodu HTTP w przeglądarce DevTools – należy otworzyć stronę do zbadania i nacisnąć F12, aby wyświetliło się okno narzędzi deweloperskich. Następnie trzeba wybrać zakładkę Sieć i odpowiednie żądanie, aby wyświetliły się informacje o odpowiedzi HTTP.
- Sprawdzanie kodu HTTP w PHP (Hypertext Preprocessor) – można zobaczyć, jaką odpowiedź zwraca dana strona internetowa i tym samym ocenić, czy działa poprawnie (kod 200 OK), czy dochodzi do nieprawidłowości.
- Sprawdzanie kodu HTTP w WP-CLI – WP-CLI to interfejs wiersza poleceń dla WordPressa, z którego pomocą można zarządzać witryną bez użycia przeglądarki. Kod HTTP można sprawdzić w kontekście stanu witryny lub przy wykorzystaniu PHP z poziomu WP-CL.
- Sprawdzanie kodu HTTP w Windows PowerShell – PowerShell potrafi wysłać zapytanie do strony i wyświetlić kod HTTP, który zwraca serwer.
Kody błędów - lista
Kody HTTP dzielą się na pięć głównych grup, oznaczonych pierwszą cyfrą trzycyfrowego kodu, która określa przynależność danego kodu do konkretnej grupy. Poniżej zaprezentowane zostaną w formie tabeli kody należące do poszczególnych grup.
1xx – kody informacyjne
Kody z tej grupy informują, że serwer otrzymał żądanie i jego przetwarzanie będzie kontynuowane.
Kod | Angielska nazwa | Wyjaśnienie |
---|---|---|
100 | Continue | Serwer zaakceptował nagłówki i czeka na dalszy ciąg żądania. |
101 | Switching Protocols | Klient poprosił o zmianę protokołu, a serwer się na to zgodził. |
102 | Processing | Serwer przetwarza żądanie, ale nie ma jeszcze gotowej odpowiedzi – informacja pośrednia. |
103 | Early Hints | Serwer wysyła wczesne nagłówki, zanim przygotuje całą odpowiedź. |
2xx – kody powodzenia
Odpowiedzi HTTP sygnalizujące, że żądanie zostało otrzymane i prawidłowo przetworzone przez serwer.
Kod | Angielska nazwa | Wyjaśnienie |
---|---|---|
200 | OK | Żądanie zakończyło się powodzeniem, serwer odesłał oczekiwane dane. |
201 | Created | Na serwerze został utworzony nowy zasób. |
202 | Accepted | Żądanie przyjęte, ale zostanie przetworzone później. |
203 | Non-Authoritative Information | Treść odpowiedzi pochodzi z innego źródła niż pierwotny serwer (np. pośrednik). |
204 | No Content | Wszystko przebiegło poprawnie, ale serwer nie odesłał żadnej treści. |
205 | Reset Content | Serwer informuje, że klient powinien zresetować formularz lub interfejs. |
206 | Partial Content | Serwer zwrócił tylko fragment żądanego zasobu. |
207 | Multi-Status | Wieloczęściowa odpowiedź dla operacji zbiorczych – np. kilka statusów dla różnych plików. |
208 | Already Reported | Dany zasób został już wcześniej uwzględniony – nie trzeba go ponownie analizować. |
226 | IM Used | Serwer spełnił żądanie GET dla zasobu. Odpowiedź stanowi reprezentację wynikową procesu jego wyboru. |
3xx – kody przekierowania
Kody z tej grupy wskazują, że niezbędne są dodatkowe działania ze strony klienta, aby możliwe było zakończenie żądania.
Kod | Angielska nazwa | Wyjaśnienie |
---|---|---|
300 | Multiple Choices | Dla tego samego żądania dostępnych jest kilka odpowiedzi – klient powinien wybrać jedną. |
301 | Moved Permanently | Adres zasobu uległ trwałej zmianie – należy korzystać z nowego adresu. |
302 | Found | Przekierowanie tymczasowe. |
303 | See Other | Odpowiedź znajduje się pod innym adresem, należy wykonać nowe żądanie metodą GET. |
304 | Not Modified | Treść zasobu się nie zmieniła – można użyć wersji zapisanej lokalnie. |
305 | Use Proxy | Dostęp do zasobu możliwy tylko przez wskazany serwer proxy. |
307 | Temporary Redirect | Tymczasowe przekierowanie bez zmiany metody HTTP. |
308 | Permanent Redirect | Trwałe przekierowanie. |
4xx – kody błędu aplikacji klienta
Kody 4xx wskazują, że doszło do problemów spowodowanych błędami po stronie klienta.
Kod | Angielska nazwa | Wyjaśnienie |
---|---|---|
400 | Bad Request | Serwer nie potrafił zinterpretować żądania z powodu nieprawidłowej składni. |
401 | Unauthorized | Wymagane uprzednie uwierzytelnienie użytkownika. |
402 | Payment Required | Na potrzeby przyszłych zastosowań. |
403 | Forbidden | Serwer odrzuca żądanie. |
404 | Not Found | Wskazany zasób nie został odnaleziony na serwerze. |
405 | Method Not Allowed | Dla tego zasobu zastosowana metoda nie jest dozwolona. |
406 | Not Acceptable | Serwer nie może przygotować odpowiedzi zgodnej z preferencjami klienta. |
407 | Proxy Authentication Required | Aby kontynuować, klient musi uwierzytelnić się przed serwerem proxy. |
408 | Request Timeout | Czas oczekiwania na pełne żądanie upłynął, więc serwer przerwał połączenie. |
409 | Conflict | Żądanie koliduje z bieżącym stanem zasobu. |
410 | Gone | Zasób został usunięty i nie jest już dostępny. |
411 | Length Required | Wymagane jest określenie długości żądania. |
412 | Precondition Failed | Warunki wstępne zawarte w żądaniu nie zostały spełnione. |
413 | Payload Too Large | Rozmiar przesyłanych danych przekracza możliwości serwera. |
414 | URI Too Long | Żądany adres URL jest zbyt długi, aby go przetworzyć. |
415 | Unsupported Media Type | Format danych przesłanych w żądaniu nie jest wspierany. |
416 | Range Not Satisfiable | Nie można spełnić żądanego zakresu danych. |
417 | Expectation Failed | Oczekiwania klienta zawarte w nagłówkach nie mogły zostać spełnione. |
421 | Misdirected Request | Żądanie zostało skierowane do niewłaściwego serwera. |
422 | Unprocessable Entity | Żądanie zostało zrozumiane, ale nie mogło zostać przetworzone. |
423 | Locked | Dostęp do wskazanego zasobu został zablokowany. |
424 | Failed Dependency | Realizacja żądania nie powiodła się przez wcześniejszy błąd. |
425 | Too Early | Żądanie zostało przesłane zbyt wcześnie, aby mogło być zrealizowane. |
426 | Upgrade Required | Konieczna jest zmiana protokołu, by kontynuować. |
428 | Precondition Required | Brakuje wymaganego warunku w żądaniu. |
429 | Too Many Requests | Zbyt wiele żądań zostało wysłanych w krótkim czasie. |
431 | Request Header Fields Too Large | Nagłówki żądania przekraczają dopuszczalny rozmiar. |
451 | Unavailable For Legal Reasons | Dostęp do zawartości został ograniczony z powodów prawnych. |
499 | Client Closed Request | Klient rozłączył się, zanim serwer zdążył odpowiedzieć. |
5xx – kody błędu serwera
Kody z tej grupy wskazują na problemy po stronie serwera, przez które nie mógł on prawidłowo przetworzyć żądania.
Kod | Angielska nazwa | Wyjaśnienie |
---|---|---|
500 | Internal Server Error | Nieoczekiwany problem, przez który żądanie nie mogło zostać zrealizowane. |
501 | Not Implemented | Serwer nie rozpoznaje żądanej metody – funkcjonalność nie została zaimplementowana. |
502 | Bad Gateway | Serwer pośredniczący otrzymał błędną odpowiedź od innego serwera. |
503 | Service Unavailable | Serwer chwilowo niedostępny – np. przeciążenie, konserwacja lub restart. |
504 | Gateway Timeout | Serwer nie doczekał się odpowiedzi od systemu docelowego i przerwał połączenie. |
505 | HTTP Version Not Supported | Żądana wersja protokołu HTTP nie jest obsługiwana przez serwer. |
507 | Insufficient Storage | Brakuje miejsca na serwerze do przechowywania danych. |
511 | Network Authentication Required | Użytkownik musi się uwierzytelnić w sieci. |
Podsumowanie
Kody odpowiedzi HTTP to swego rodzaju język, którym serwer komunikuje się z klientem Warto je znać, ponieważ dzięki nim można zdiagnozować błędy oraz optymalizować działanie aplikacji. Kody HTTP dostarczają wartościowych informacji na temat stanu danej strony internetowej, co pozwala szybko zidentyfikować niedostępne zasoby, przekierowania czy błędy serwera.