Podręcznik
Back-end
Protokół HTTP
HTTP (ang. Hypertext transfer protocol) jest standardem (protokołem) komunikacji internetowej między klientami i serwerami. Został on opracowany i jest nadzorowany przez organizację World Wide Web Consortium (W3C, www.w3.org). Najnowsza wersja, HTTP/3, została opublikowana w 2022 roku:
Internet Engineering Task Force, Request for Comments 9114 - HTTP/3
Metody HTTP
Standard HTTP charakteryzuje komunikację klient–serwer w postaci „żądanie–odpowiedź” (ang. request–response). W szczególności, są w nim wymienione tzw. metody HTTP (ang. HTTP methods), takie jak:
- metoda GET, służąca do pozyskiwania zasobów,
- metody PUT i POST, służące do zapisywania i przetwarzania zasobów,
- metoda DELETE, służąca do usuwania zasobów
i inne; pełną listę wraz ze szczegółowymi opisami metod HTTP można znaleźć w specyfikacji standardu.
Metoda HTTP jest podawana jako element żądania, formułowanego przez klienta, i stanowi podstawę do doboru odpowiedniej procedury generacji odpowiedzi przez aplikację serwerową.
Kody odpowiedzi
Standard HTTP określa również liczbowe kody (ang. response status codes), które stanowią część odpowiedzi na żądania, takie jak:
- 200 (OK) – żądanie zostało przetworzone z powodzeniem.
- 201 (Created) – żądanie poskutkowało utworzeniem jakiegoś zasobu z powodzeniem.
- 301 (Moved Permanently) – żądane zasoby zostały przeniesione pod inny adres na stałe.
- 302 (Found) – żądane zasoby zostały przeniesione pod inny adres tymczasowo.
- 400 (Bad Request) – żądanie nie może być przetworzone z powodzeniem, bo jest błędne (nie jest przewidziane w Web API).
- 401 (Unauthorized) – żądanie nie może być przetworzone z powodzeniem, bo wysyłający je klient nie jest w odpowiedni sposób autoryzowany.
- 404 (Not Found) – żądanie nie może być przetworzone z powodzeniem, bo odnosi się do zasobu, którego nie ma na serwerze (co może mieć miejsce np. w razie podania błędnej nazwy pliku).
- 418 (I'm a teapot) – „jestem czajnikiem” (naprawdę).
- 500 (Internal Server Error) – żądanie nie zostało przetworzone z powodzeniem, bo w trakcie jego przetwarzania po stronie serwera wystąpił błąd (co może mieć miejsce np. gdy w kodzie aplikacji serwerowej jest błąd programistyczny).
Pełną listę wraz ze szczegółowymi opisami kodów odpowiedzi można znaleźć m.in. w dokumentacji MDN.
Taki kod stanowi element każdej odpowiedzi generowanej przez aplikację serwerową i wysyłanej do klienta.