Warto wiedzieć

HTTP – co to jest i jak to działa ?

By 21/04/2020 No Comments

 

Co to jest protokół HTTP?

Według słownika języka polskiego protokół to zasady wymiany informacji, jak i współpracy urządzeń i programów komputerowych.

protokół http działanie

Dlatego też protokół HTTP to po prostu zasady co do współpracy programów i wymiany informacji. Programy to klienci i serwery. Programy te przesyłają pewne żądania (klienci) albo odpowiedzi (serwery). Jako przykład klienta HTTP, można podać przeglądarkę internetową. Klienci mają szansę poddawania interpretacji uzyskanych odpowiedzi, przykładowo przeglądarka internetowa może wyświetlić witrynę internetową, która była wysłana przez serwer.

Każde z żądań, które wysyłają klienci, jest związane z pewnym zasobem. Zasobem może być w takim przypadku plik wraz z kodem JavaScript, strona HTML, albo też obrazek. Sam protokół HTTP nie określa nam, czym tak dokładnie jest owy zasób. Określa tylko, w jaki sposób możemy dostać się do potrzebnych zasobów. Każdy z zasobów posiada własny, a do tego unikalny identyfikator URI.

Protokół HTTP określa nam dokładnie format komunikacji między serwerem a klientem. Komunikacja ta opiera się na wyżej opisanych żądaniach i odpowiedziach. Protokół HTTP określa po prostu format tychże wiadomości.

Protokół HTTP jest bezstanowy, co oznacza, iż każde spośród zapytań może.zostac zinterpretowane w oderwaniu od reszty.

Poza serwerami i klientami w komunikacji muszą występować dodatkowe węzły. Mogą to być przykładowo serwery, które zachowają kopię odpowiedzi, przyspieszając tym samym komunikację. Mogą to być również elementy sieciowe, które umożliwiają sprawne docieranie żądań do serwera.

Czym jest adres URL?

Wspomnieliśmy już wyżej o URI. Podzbiorem należącym do URI są tak zwane URL (Uniform Resource Locator). URI możemy traktować w roli zbioru znaków, który umożliwia nam unikalne identyfikowanie zasobów. URL zaś poza wspomnianym identyfikatorem zawiera także informacje, która dotyczy położenia wybranego zasobu. Nierzadko omawiane określenia stosuje się ze sobą zamiennie.

Adres URL ma postać:

scheme/host/querry/port/path/

Zgodnie ze specyfikacją, która dotyczy HTTP wielkość liter nie ma większego znaczenia w częściach hist i scheme. W pozostałych zaś elementach wielkość liter ma niewątpliwie znaczenie. Poniżej zostaną opisane części wchodzące w skład adresu URL.

Scheme

Najczęściej tej części adresu używa się celem określenia protokołu, zwykle można tutaj zobaczyć skrót http albo https. W uproszczeniu można napisać, iż HTTPS (z angielskiego Hypertext Transfer Protocol Secure) stanowi rozszerzenie dla protokołu HTTP. Rozszerzenie to umożliwia zaszyfrowanie połączenia między serwerem a klientem.

User: password

User: password służą celem uwierzytelniania. Uwierzytelnianie jest procesem, który polega na udowadnianiu, iż klient przesyłający konkretne żądanie jest tym, za kogo się w danym momencie podaje. Mechanizmy uwierzytelniania używamy praktycznie w każdym z serwisów, gdzie mamy założone własne konto.

W takim wypadku hasło i nazwa użytkownika przesyłane są jako część URL. Nie jest to niewątpliwie bezpieczne w wypadku użytkowania protokołu HTTP. Nawet przy komunikacji z użyciem protokołu HTTP, adres URL może zostać zapamiętany przez naszą przeglądarkę. Daje to nam możliwość na przechwycenie hasła i nazwy użytkownika. Dlatego też nie jest to z pewnością bezpieczny sposób na przesyłanie nazwy użytkownika i hasła i należy go na pewno unikać.

Host

W wypadku protokołu HTTP sprowadza się on do adresu IP albo nazwy domeny internetowej. Przykładowa domena to www.samouczekdlapoczątkującychprogramistow.pl, zaś przykładowy adres IP to 196.40.265.117.

DNS (Domain Name System) to protokół, który umożliwia tłumaczenie adresów IP na nazwy różnorodnych domen.

Port

Port jest numerem wykorzystywanym przez serwer. Serwer nasłuchuje ruchy na wybranym porcie. To tak jak z numerem naszego bloku w mieście, domena jest numerem klatki, zaś wspomniany port jest numerem mieszkania.

Protokoły posiadają własne standardowe porty. Przykładowo portem standardowym dla protokołu HTTP będzie 80. Protokół HTTPS używa zaś portu o numerze 443. W praktyce, biorąc pod uwagę domyślne wartości, porty te nierzadko są pomijane. Właściwa wartość w polu scheme umożliwia określenie, czy użytkownikowi będzie chodziło o port 443 czy też 80.

Można również uruchomić serwer, który będzie nasłuchiwała na innym porcie. Przykład stanowi tutaj Tomcat, który standardowo uruchamia się na porcie 8080. W takim wypadku podanie portu będzie jak najbardziej konieczne.

Path

Ta część z adresu URL stanowi ścieżkę, która określa nam zasoby. Przykładowo a adresie www.samouczekdlapoczatkujacychprogramistow.pl/kursszybkiegoprogramowania – ścieżką będzie /kursszybkiegoprogramowania.

Query

Zawiera dane dodatkowe, które odpowiadają za identyfikowanie konkretnego zasobu. Tą część oddziela się od ścieżki znakiem pytajnika. W praktyce zawiera ona pary klucz = wartości połączone znakiem &. Przykładowo:

?parametr=format&wartość=json

Fragment

To ostatnia część z adresu URL. W praktyce używa się jej celem określenia fragmentów strony HTML, które powinny zostać pokazane użytkownikom.

Pisząc nieco bardziej formalnie fragmenty używane są celem określenia podzbioru zasobu. W wypadku HTML zasobem będzie strona HTML, zaś podzbiorem sekcja tejże strony. Zgodnie z przyjętą specyfikacją ta spośród części adresu URL służy celem identyfikowania zasobów tylko po stronie klientów. Oznacza to dla nas tyle, iż serwer do identyfikacji zasobów nie będzie używał tejże części URL.

Ciasteczka HTTP jak działają?

ciasteczka przeglądarki

Ciasteczka, są niczym innym jak nagłówkami, niemniej jednak zdecydowanie warto im poświęcić osobny podpunkt.

Z poprzedniej części tekstu, można było się dowiedzieć, iż protokół HTTP jest bezstanowy. Serwer HTTP nie może zatem powiązać ze sobą zapytań, które pochodzą od takiego samego klienta w wyłącznie jedną paczkę. Z pomocą mogą nam przyjść właśnie omawiane ciasteczka. Ciasteczka są specyficznymi nagłówkami, które obsługiwane są przez tak zwane klienty.

Serwer w odpowiedzi może przesłać nagłówek, który utworzy nam owe ciasteczko. Ciasteczko to będzie przypisane do domeny (części Path, jak i host w adresie URL).

W każdym następnym zapytaniu do wspomnianej domeny, klienci dołączają nagłówki dla ciasteczek. Dzięki czemu aplikacja na serwerze może połączyć ze sobą wybrane pojedyncze zapytania w pewną sesję. Przykładowe ciasteczka w odpowiedzi dołączane są przy pomocy nagłówków.

Cookie: = <wartość ciasteczka>

Z pewnością większość z nas kojarzy formularze do logowania, w których możliwie jest zaznaczenie opcji : ,,zapamiętaj mnie”. Zaznaczenie tegoż pola spowoduje przesłanie odpowiedzi serwera, w której będzie się znajdować nagłówek wraz z ciasteczkiem (tak zwany nagłówek Set-Cookie). Ciasteczko to zawiera pewien unikalny klucz, który zostaje później dołączony przez klientów do każdego spośród żądań do konkretnej domeny (czyli nagłówek Cookie). Dzięki czemu każde następne zapytanie będzie miało nagłówek wraz z takim tokenem. Aplikacja znajdująca się na serwerze widząc taki token może nam potwierdzić tożsamość wybranego użytkownika.

Niestety ciasteczka przez wiele osób wykorzystywane są również do tak zwanych złych celów. Ciasteczka mogą między innymi zostać wykorzystane jako jedna spośród metod śledzenia naszego ruchu w internecie. Na pewno zdarzyło się nam kiedyś kliknąć na pewną reklamę, a ona później ciągle nam się wyświetlała. Ciasteczka również mogły się do takiego procederu przyczynić.

HTTPS a co to takiego?

Hypertext Transfer Protocol Secure (HTTPS) jest wersją szyfrowaną protokołu HTTP. W odróżnieniu od wersji nieszyfrowane, gdzie komunikacja występuje między serwerem a klientem bez zastawiania specyficznego typu ustawień wysyłających zapytania, protokół HTTPS będzie szyfrować dane. Na samym początku jego wprowadzenia, odbywało się to z użyciem protokołu SSL. Niemniej jednak teraz w użyciu mamy protokół TLS. Jego zastawianie umożliwia unikanie sytuacji przechwytywania danych, jak i ich ewentualnej zmiany.

HTTP vs HTTPS

http-vs-httpsProtokół HTTP (Hypertext Transfer Protocol) to protokół, który pozwala na przesył danych w przypadku sieci internetowej. Za jego pomocą możliwe będzie przesyłanie klientowi dokumentów, które znajdują się w sieci.

Http wykorzystywany jest w sieci począwszy od lat 90 XX wieku, właśnie celem umożliwienia nawiązania komunikacji między serwerem a klientem. Na samym początku możliwie było wyłącznie przesłanie jednego żądania, jak i otrzymania danych w ramach tylko jednego połączenia. Nie miały one dużego rozmiaru i wagi. Rozbudowanie tegoż protokołu zgodnie z przyjętym formatem MIME sprawiło, iż wysyłanie większej ilości danych, tym bardziej opierających się na różnych parametrach, stało się jak najbardziej możliwe.

Komunikacja w przypadku protokołu HTTP, a zatem między serwerem a klientem, oparta jest ona przesyłaniu danych między nimi. Klienci wysyłają zapytania, na co serwer odpowiada dzięki przesłaniu danych zainteresowanym. W tymże miejscu warto wspomnieć, iż wyżej omawiany protokół zaliczany jest do protokołów bezstanowych, co oznaczać będzie, iż nie przechowa on żadnych danych. Z jednej strony nie pozwala to na zbyt duże obciążenie danymi. Z drugiej zaś okazuje się to problematyczne w przypadku kilkukrotnego skorzystania ze strony internetowej. Z tego względu witryny WWW opierające się na tymże protokole wspierane są poprzez system ciasteczek, które umożliwiają zgromadzenie danych w temacie osób odwiedzających stronę.

W standardzie tworzenia witryn internetowych oznaczanie protokołu HTTPS umiejscowione jest w polu wyszukiwarki tuż przed adresem strony. Protokół ten stosowany jest w przypadku witryn, w wypadku których wymagane będzie dużo większe zaufanie do wybranego serwera. Będzie on więc za.kazdym razem obecny przy adresach URL platform sprzedażowych, kantorów, stron bankowości elektronicznej, jak i wszelakich witryn, w których może nastąpić płatność z użyciem karty płatniczej. Co bardzo istotne, protokół HTTPS wykorzystywany jest także przez popularną wyszukiwarkę Google. Ponadto stosuje się go również celem zabezpieczania różnego rodzaju portali społecznościowych, czy forów internetowych.

 

 

 

 

Leave a Reply