Wstęp do HTTP
Post ten jest początkiem serii opisującej podstawę funkcjonowania obecnie istniejącej sieci.
HTTP (HyperText Transfer Protocol) jest protokołem definiującym jakie wiadomości i w jaki sposób są przekazywane poprzez sieć. Używany jest on głównie do komunikacji typu klient-serwer. W ogólnym ujęciu polega to na tym, że klient wysyła do serwera żądanie wykonania zdefiniowanej akcji na zasobie. Zasobem może być strona www oraz rekord w bazie danych. W ten sposób możemy prosić o pobranie strony lub modyfikację zestawu danych. Typowy schemat komunikacji pokazany jest na poniższym rysunku.
Przykładowo, gdy klient chce otrzymać zasób z określonego adresu url, otwiera połączenie do serwera. Następnie wysyła żądanie opisujące m.in. w jaki sposób chce otrzymać dane i czeka na odpowiedź ze strony serwera. HTTP jest protokołem bezstanowym. Oznacza to, że pomiędzy kolejnymi żądaniami (requestami) nie są przechowywane żadne informacje. Po otrzymaniu odpowiedzi połączenie z serwerem może być bez problemu zamknięte.
Zasoby HTTP są jednoznacznie identyfikowane w sieci za pomocą adresów URL
W najprostszym przypadku żądanie składa się z typu operacji (GET, POST, itp.) i adresu URL. Dodatkowo mogą się w nim znajdować pomocnicze nagłówki, które pozwalają sterować parametrami i zachowaniem requestów. Serwer po przetworzeniu zapytania odsyła do klienta wiadomość zawierającą kod statusu przetworzenia żądania oraz treść odpowiedzi. Także i tutaj mogą być przesyłane dodatkowe informacje za pomocą nagłówków.
Podstawowym przykładem operacji HTTP w sieci web jest żądanie otworzenia strony w przeglądarce. Pyta ona o konkretny adres, otrzymując w odpowiedzi kod strony HTML. Analizując go, może automatycznie wysłać do serwera kolejne zapytania pobierające dodatkowe zasoby: obrazy, skrypty, style, itp. W pokazanym poniżej przykładzie widać, że po pobraniu treści strony index.html, przeglądarka będzie potrzebowała pobrać dodatkowo pliki jquery-2.1.4.js oraz image.png.
Te zależne zasoby są również pobierane za pomocą protokołu HTTP. Różnią się one typem obiektów, które chcemy pobrać i oczywiście adresem.
Kolejnym zastosowaniem protokołu jest operowanie na zasobach REST, czyli zasobach na których operowanie wzoruje się na działaniu zapytań HTTP.