Odpowiedź serwera to kod i komunikat zwracany w sesji protokołu, wskazujący wynik przetworzenia polecenia.
Jak serwer komunikuje wynik polecenia
Odpowiedź serwera to dane przesłane do klienta po odebraniu i przetworzeniu żądania. Klientem może być przeglądarka internetowa, program pocztowy, aplikacja mobilna, narzędzie wiersza poleceń albo inny serwer. Odpowiedź zwykle zawiera kod wskazujący rezultat operacji oraz dodatkowe informacje opisujące ten rezultat. Kod nie zastępuje całej treści odpowiedzi, lecz pozwala programowi szybko podjąć decyzję: wyświetlić dane, ponowić próbę, poprosić użytkownika o uwierzytelnienie albo zgłosić błąd.
Znaczenie odpowiedzi zależy od protokołu. W HTTP serwer zwraca między innymi kod statusu, nagłówki i opcjonalne ciało odpowiedzi. Kod 200 OK oznacza pomyślne wykonanie żądania, 201 Created informuje o utworzeniu zasobu, a 204 No Content potwierdza wykonanie operacji bez zwracania treści. Z kolei 400 Bad Request wskazuje na niepoprawne żądanie, 401 Unauthorized na brak prawidłowego uwierzytelnienia, 403 Forbidden na odmowę dostępu, a 404 Not Found na brak wskazanego zasobu.
Status HTTP, nagłówki i treść odpowiedzi
W protokole HTTP/1.1 odpowiedź rozpoczyna się od linii statusu, na przykład HTTP/1.1 200 OK. Pierwszy element określa wersję protokołu, liczba jest kodem statusu, a tekst po niej stanowi opis przeznaczony głównie dla człowieka. W HTTP/2 i HTTP/3 informacje o wersji oraz tekstowy opis nie są przesyłane w identycznej postaci jak w HTTP/1.1, ponieważ protokoły te używają binarnego formatu ramek. Kod statusu nadal ma jednak takie samo znaczenie dla logiki aplikacji.
Nagłówki opisują właściwości odpowiedzi. Content-Type informuje, czy treść jest dokumentem HTML, danymi JSON, obrazem lub innym typem mediów. Content-Length może określać długość treści w bajtach, natomiast Content-Encoding: gzip lub br wskazuje zastosowany sposób kompresji. Nagłówek Location jest używany między innymi przy przekierowaniach, takich jak 301 Moved Permanently albo 302 Found. Sam fakt otrzymania odpowiedzi HTTP nie oznacza jeszcze, że aplikacja wykonała żądaną operację poprawnie. Serwer może zwrócić kod 200 z dokumentem zawierającym komunikat o błędzie aplikacyjnym, dlatego klient powinien analizować także format i zawartość danych.
Odpowiedź serwera w innych protokołach
W DNS odpowiedź zawiera między innymi identyfikator transakcji, flagi, sekcję odpowiedzi i rekordy zasobów. Rekord typu A może zwrócić adres IPv4, rekord AAAA adres IPv6, a rekord MX wskazuje serwer obsługujący pocztę dla domeny. Kod odpowiedzi DNS, nazywany również RCODE, określa rezultat zapytania. Wartość 0 oznacza brak błędu, 2 oznacza błąd serwera, a 3 informuje o nieistnieniu nazwy domenowej, jeśli autorytatywny serwer potwierdzi ten stan.
W SMTP odpowiedź serwera jest zwykle trzycyfrowym kodem poprzedzającym komunikat tekstowy. Kod 220 sygnalizuje gotowość usługi połączeniowej, 250 potwierdza pomyślne wykonanie polecenia, 354 pozwala klientowi rozpocząć przesyłanie treści wiadomości, a kody z zakresu 4xx wskazują na błąd tymczasowy. Kody 5xx oznaczają błąd trwały, na przykład odrzucenie niepoprawnego polecenia. Program pocztowy nie powinien traktować każdego błędu tymczasowego tak samo jak błędu trwałego, ponieważ przy kodzie 4xx uzasadnione może być ponowienie próby po pewnym czasie.
Odczyt odpowiedzi podczas sprawdzania połączenia
Analizując odpowiedź serwera, należy ustalić, jakie żądanie zostało wysłane, do którego hosta i portu, przy użyciu jakiego protokołu oraz po jakim czasie pojawiła się odpowiedź. Ważne jest rozróżnienie między brakiem odpowiedzi, zerwaniem połączenia, przekroczeniem limitu czasu i prawidłową odpowiedzią zawierającą kod błędu. W przypadku HTTPS należy dodatkowo uwzględnić negocjację TLS. Połączenie może zostać przerwane jeszcze przed otrzymaniem odpowiedzi HTTP, na przykład z powodu niezgodności certyfikatu, wersji TLS albo nazwy hosta.
Na laptopie lub komputerze PC można sprawdzić odpowiedź HTTP poleceniem curl -I https://example.com, które wysyła żądanie nagłówkowe i wyświetla status oraz nagłówki. Wynik HTTP/2 200 potwierdza otrzymanie odpowiedzi na poziomie HTTP, ale nie dowodzi poprawności działania całej aplikacji. Należy również sprawdzić przekierowania, czas odpowiedzi, typ treści i ewentualne komunikaty w logach klienta. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i podzespołów, w tym diagnostyką problemów z dostępem do usług sieciowych oraz prawidłowym odczytem odpowiedzi serwera.