Metody HTTP — czyli must have każdego junior developera
HTTP to oprócz HTTPS jeden z najważniejszych, integralnych elementów komunikacji na linii klienta z serwerem. Skrót ten, którego rozwinięciem jest Hypertext Transfer Protocol, z pewnością kojarzymy z okna adresu przeglądarki internetowej. Czym tak naprawdę jest HTTP, czemu służy i jakie metody HTTP powinien znać każdy programista?
Kilka słów o komunikacji HTTP
HTTP to obecnie najczęściej wykorzystywany, bezstanowy protokół wykorzystywany w praktycznie wszystkich przeglądarkach internetowych. Dlaczego bezstanowy? Ze względu na fakt, iż nie przechowuje on żadnych informacji związanych ze stanem wewnętrznym klienta i serwera oraz zapytań, które w przeszłości były wysyłane. To dobra cecha protokołu HTTP, ze względu na fakt, że aplikacja nie jest w stanie powiązać informacji o użytkowniku, który już wcześniej wysyłał jakiekolwiek żądania. Oznacza to, że serwer danej aplikacji każde zapytanie traktuje jak zupełnie nowe.
Protokół HTTP możemy podzielić na dwa najważniejsze elementy – nagłówek oraz ciało (header i body). Nagłówek ma za zadanie określić metodę HTTP, adres i wersję protokołu HTTP. Po nagłówku czas na ciało zapytania, czy dane, które zostaną wysłane na serwer. Wcześniej już wspomniano, że głównym zadaniem headera jest określenie metody HTTP. Czym dokładnie są te metody i za co są one odpowiedzialne?
Do czego służą metody HTTP?
HTTP skupia się w dużej mierze na metodach, których celem jest precyzyjne zdefiniowanie czynności, która ma zostać wykonana. Metody służą także ogólnie pojętej obsłudze wszelkich zapytań klient-serwer oraz projektowaniu konkretnych funkcjonalności przeglądarki internetowej.
Metody w praktyce pozwalają na realizację wielu zapytań, które w tej samej formie trafiają pod jeden adres. Dzięki mechanice i strukturze metody HTTP, te są rozdzielane i odpowiednio obsługiwane. Wcześniej już wspominano o bezstanowości protokołu HTTP. Ta niezwykle istotna z punktu widzenia naszej prywatności i anonimowości w sieci jest nieco zamazana przez popularne ciasteczka, z którymi na przestrzeni ostatnich lat zdążyliśmy się dobrze zaznajomić.
Ciasteczka w praktyce przechowują niezwykle dużo informacji o naszych zachowaniach w sieci. Dane te najczęściej istnieją, dopóki nie zdecydujemy się na czyszczenie pamięci przeglądarki, dlatego dla własnego bezpieczeństwa warto zadbać o to, by ciasteczka gromadziły jedynie jawne, relatywnie niewinne dane, na temat naszych preferencji związanych z customizacją witryny czy przeglądarki. Jak dane gromadzone w ramach ciasteczek są w praktyce wykorzystywane? Głównie do badań naszych zachowań w sieci, preferencji zakupowych i schematów, na podstawie których działamy. Dane te w ilościach hurtowych analizowane są przez zaawansowane oprogramowanie z Google Analytics na czele, co w dużej mierze wpływa na decyzje biznesowe właścicieli stron, inwestujących w skuteczne kampanie reklamowe.
Lista metod HTTP
Istnieje konkretna liczba metod, czyli zapytań, które są obsługiwane przez protokoły HTTP. Metody te są następujące:
- GET – Metoda, której celem jest wyświetlenie lub pobranie konkretnego zasobu. Jeśli prosisz o wyświetlenie konkretnego zasobu, poprzez metodę GET uzyskasz to.
- DELETE – Metoda, której celem jest usunięcie zasobu znajdującego się na danym serwerze. Jest to metoda opcjonalna, wykorzystywana jedynie w serwisach, które obsługują konkretne zasoby nie przez serwer, a raczej przez aplikację.
- PUT – Metoda ta dodaje nowy, konkretny zasób do serwera – może to być na przykład plik. Jeśli w ramach obsługi danego zapytania serwer zauważy, że dany zasób o identycznym URI jest na stanie, zostanie usunięty i zastąpiony naszym nowym.
- HEAD – Metoda HEAD bardzo mocno przypomina nam metodę GET. W przypadku wysłania takiego zapytania nie otrzymamy zawartości, a jedynie header, co często jest wykorzystywane w celu pobrania metadanych o zasobie.
- POST – To metoda, która zapewnia nam możliwość wysłania informacji w drugą stronę. Za pomocą żądania POST jesteśmy w stanie zastąpić swoim własnym zasobem ten, który jest już na serwerze. W teorii żądanie POST definiowane jest jako przesyłanie danych zapisanych na zasadzie klucz-wartość do konkretnego serwera.
To najpopularniejsze metody HTTP, które w dużej mierze odpowiadają za całą komunikację. Istnieją jednak inne, dodatkowe, rzadziej wykorzystywane komendy, takie jak PATCH, CONNECT, TRACE, czy OPTIONS.
Przykłady wykorzystania metod HTTP
Koniec teorii, czas na praktykę. W jakich konkretnych sytuacjach zdarza nam się wykorzystywać te popularne metody HTTP? Protokół HTTP, a więc i żądania pozwalają na udostępnianie zasobów dostępnych pod konkretnym adresem URL, pobrania zasobów po kliknięciu w konkretny odnośnik, a także zapewniają nam możliwość wysłania konkretnych danych, na przykład w dobrze nam znanym formularzu logowania czy rejestracji klienta.
To właśnie dzięki protokołowi HTTP znormalizowano i uspójniono proces komunikowania się klientów (będących przeglądarkami) z serwerami, które składują zasoby związane z konkretnymi zasobami dostępnymi w ramach danej strony internetowej. HTTP, dzięki swojej tekstowej strukturze pozwala na efektywne przesyłanie zasobów, bez nadmiernego obciążania serwera.
Porozmawiajmy!
a my pomożemy Ci wdrożyć najnowsze rozwiązania!