Czym jest HTTP?
HTTP(Hypertext Transfer Protocol) jest to protokół będący podstawą komunikacji w sieci WWW. Dokładnie jest to komunikacja klient <-> serwer. Oznacza to, że wysyłane jest żądanie do serwera i oczekiwana jest odpowiedź w określonym formacie. W ramach zapytania wysyłamy jedno żądanie.
Protokół HTTP wykorzystywany jest w całej sieci WEB, kiedy np. wpiszemy adres strony www.nietylkoprogramowanie.pl i serwer w odpowiedzi zwróci nam zawartość strony.
Protokół HTTP jest bezstanowy, czyli każde żądanie interpretowane jest niezależnie od innych.
Za rozwój protokołu odpowiada World Wide Web Consorcium (W3). Na ich stronie znajduje się także specyfikacja całego protokołu HTTP: https://www.w3.org/Protocols/rfc2616/rfc2616.html
Budowa komunikatów
Żądanie (request HTTP)
Aby otrzymać jakiś zasób z serwera musimy najpierw powiedzieć czego potrzebujemy, jak w życiu ;).
Kiedy chcemy dowiedzić stronę: https://www.nietylkoprogramowanie.pl/ksiazki-it/ to musimy przekazać informację do jakiego zasobu chcemy się dostać.
Poniżej widać uproszczony przykład wywołania. Przyjrzyjmy się temu bliżej.
GET /ksiazki-it/ HTTP/1.1
Host: www.nietylkoprogramowanie.pl
„GET” to nazwa metody. Przedstawie je w dalszej części artykułu.
/ksiazki-it/ to ścieżka do zasobu, czyli URL.
HTTP/1.1 jest to oznaczenie wykorzystwanej wersji protokołu.
Host to nazwa nagłówka(header).
Występuje także część, która nie jest wymagana, czyli BODY, w której zawierają się szczegóły żądania.
Odpowiedź (response HTTP)
W odpowiedzi dostaniemy:
HTTP/1.1 200 OK
Header
HTTP/1.1 tak jak w przypadku zapytania przesyłana jest informacja o użytej wersji protokołu.
„200” oznacza kod statusu odpowiedzi (Status code). Więcej o statusach znajduje się w dalszej części artykułu.
„OK” oznacza treść statusu (Status message).
Header zawiera w sobie dodatkowe informację.
Występuje także część, która nie jest wymagana, czyli BODY, w której zawierają się szczegóły odpowiedzi.
Metody HTTP
GET – Metoda GET
żąda określonego zasobu. Żądania używające GET
powinny pobierać tylko dane.
HEAD – Metoda HEAD
żąda odpowiedzi identycznej z żądaniem GET
, ale bez treści odpowiedzi.
POST – Metoda POST
przesyła dane do określonego zasobu.
PUT – Metoda PUT
zastępuje wszystkie wartości występujące w danym zasobie.
DELETE – Metoda DELETE
usuwa określony zasób.
CONNECT – Metoda CONNECT
służy do tworzenia połączenia z zasobem serwera.
OPTIONS – Metoda OPTIONS
opisuje opcje komunikacji dla zasobu docelowego.
TRACE – Metoda TRACE
służy do diagnostyki, debugowania i rozwiązywania problemów.
PATCH – Metoda PATCH
używamy do częściowej modyfikacji do zasobu.
Kody HTTP
Kody HTTP dzielimy na 5 grup:
- 1xx – kody informacyjne,
- 2xx – kody powodzenia,
- 3xx – kody przekierowania,
- 4xx – kody błędu aplikacji,
- 5xx – kody błędu serwera.
Podsumowanie
Protokół HTTP jest z nami każdego dnia. Wykorzytujemy go w pracy do przesyłania informacji oraz do oglądania śmiesznych kotków.
Warto znać podstawy funkcjonowania sieci WWW i tego z czego ona jest zbudowana.
Chcesz się ze mną skontaktować.