Główna zawartość
Podstawy informatyki - program rozszerzony
Hypertext Transfer Protocol (HTTP)
Za każdym razem, gdy odwiedzasz stronę w sieci, Twój komputer używa protokołu HTTP (ang. Hypertext Transfer Protocol), aby pobrać tę stronę z innego komputera gdzieś w Internecie.
Przejdźmy przez ten proces.
Krok 1: Przekieruj przeglądarkę na adres URL
Kiedy chcemy przeglądać sieć, możemy korzystać z wielu rodzajów komputerów (takich jak laptopy, komputery stacjonarne i telefony), o ile na komputerze jest zainstalowana aplikacja przeglądarki.
Użytkownik albo wpisuje w przeglądarce ujednolicony format adresowania (ang. Uniform Resource Locator w skrócie URL), albo przechodzi przez link z już otwartej strony:
Zwróć uwagę na ten adres URL: zaczyna się on od „http”. Jest to sygnał dla przeglądarki, że musi użyć HTTP do pobrania dokumentu dla tego adresu URL.
🔍 Z jakiej przeglądarki teraz korzystasz? Jaki jest adres URL tej strony internetowej? Od czego się ona zaczyna?
Krok 2: Przeglądarka wyszukuje adres IP
Zazwyczaj wpisujemy do przeglądarek miłe dla oka adresy URL, takie jak "khanacademy.org" czy "wikipedia.org". Te nazwy domen mapowane są na adresy IP, czyli prawdziwą lokalizację komputerów w domenie. Zajmuje się tym system nazw domen.
Przeglądarka używa usługi rozpoznawania nazw DNS do mapowania domeny na adres IP:
Krok 3: Przeglądarka wysyła żądanie HTTP
Gdy przeglądarka zidentyfikuje adres IP komputera obsługującego żądany adres URL, wysyła żądanie HTTP.
Żądanie HTTP może być tak krótkie jak dwa wiersze tekstu:
GET /index.html HTTP/1.1
Host: www.example.com
Pierwszym słowem jest czasownik HTTP: "GET". Istnieją inne czasowniki dla innych działań w sieci jak np. przesyłanie danych formularza ("POST").
Następna część określa ścieżkę: "/index.html". Komputer hosta przechowuje zawartość całej strony internetowej, więc przeglądarka musi być konkretna co do tego, którą stronę załadować.
Ostatnia część pierwszej linii określa protokół i wersję protokołu: "HTTP/1.1".
Druga linia określa domenę żądanego adresu URL. Jest to pomocne w przypadku, gdy host komputerowy przechowuje zawartość wielu stron internetowych.
Krok 4: Host odsyła odpowiedź HTTP
Po otrzymaniu żądania HTTP przez komputer hosta, wysyła on odpowiedź zawierającą zarówno treść, jak i metadane na jego temat.
Odpowiedź HTTP rozpoczyna się podobnie jak w przypadku żądania:
HTTP/1.1 200 OK
Odpowiedź zaczyna się od protokołu i wersji "HTTP/1.1".
Następny numer to bardzo ważny kod statusu HTTP, a w tym przypadku 200. Ten kod reprezentuje udane pobranie dokumentu ("OK").
Jeśli serwerowi nie udało się uzyskać dokumentu, kody statusów dostarczają więcej informacji, np. jeśli awaria była spowodowana błędem użytkownika lub błędem serwera. Na przykład najbardziej znanym kodem statusu jest 404 ("Nie znaleziono pliku"). Dzieje się tak za każdym razem, gdy odwiedzasz ścieżkę na serwerze, która nie odpowiada żadnemu dokumentowi. Ponieważ użytkownicy mają zwyczaj nieprawidłowego wpisywania adresów URL, 404 zdarzają się często, więc strony internetowe często mają zabawne strony 404. Spróbuj wpisać nonsensowny adres URL Khan Academy i zobacz, co się stanie!
Następną częścią odpowiedzi HTTP są nagłówki. Podają one przeglądarce dodatkowe szczegóły i pomagają jej w renderowaniu treści.
Te dwa nagłówki są wspólne dla większości żądań:
Content-Type: text/html; charset=UTF-8
Content-Length: 208
Typ zawartości informuje przeglądarkę, jaki typ dokumentu jest wysyłany z powrotem. Powszechnym typem w sieci jest " text/html", ponieważ wszystkie strony internetowe są plikami tekstowymi HTML. Możliwe są także inne typy, takie jak obrazy ("image/png"), filmy wideo ("video/mpeg"), skrypty ("application/javascript") i wszystko inne, co można załadować do przeglądarki.
Długość treści określa długość dokumentu w bajtach, dzięki czemu przeglądarka wie, ile czasu zajmie pobranie pliku.
Wreszcie odpowiedź HTTP zapisuje żądany dokument. Ta strona jest prostym plikiem HTML:
<!DOCTYPE html>
<html>
<head>
<title>Przykładowa domena</title>
</head>
<body>
<h1>Przykładowa domena</h1>
<p>Ta domena powinna być wykorzystywana jako przykład ilustrujący dokumenty.</p>
</body>
</html>
Jeśli chcesz zrozumieć, jak działa HTML w sposób bardziej szczegółowy, możesz sprawdzić nasz kompletny kurs HTML/CSS.
Krok 5: Przeglądarka wyświetla odpowiedź
Przeglądarka posiada teraz wszystkie informacje potrzebne do wyświetlenia żądanego dokumentu.
Przekonaj się sam
Wiele przeglądarek zawiera narzędzia do debugowania, które umożliwiają przeglądanie zapytań HTTP i ich odpowiedzi podczas przeglądania stron internetowych.
Spróbujmy w Chrome.
Po pierwsze, musimy otworzyć narzędzia dla deweloperów. Jednym ze sposobów jest kliknięcie ikony trzech kropek, otwarcie menu "Więcej narzędzi", a następnie wybranie opcji "Narzędzia dla deweloperów". Po otwarciu menu wybierz zakładkę "Network".
Następnie wpisz w pasku przeglądarki adres URL, np. "http://www.example.com/index.html". W konsoli pojawi się żądanie HTTP, a przeglądarka wyświetli stronę.
Możemy przyjrzeć się tej prośbie, aby zobaczyć soczyste szczegóły, jeśli chcemy. Kliknij "index.html" pod kolumną "Name". Pojawi się zakładka interfejsu i domyślnie zostanie wyświetlona zakładka "Headers".
Nagłówki "Response" zawierają nagłówki omówione powyżej, takie jak "Content-Type" i "Content-Length" oraz wiele innych ciekawych nagłówków.
Rzeczywista zawartość HTML odpowiedzi to kolejna zakładka "Response".
🔍 Otwórz zakładkę "Network" i przejdź do większej liczby stron internetowych. Ile zapytań HTTP zadaje każda strona? Jakie rodzaje treści znajdują się w odpowiedziach? Co Ciebie najbardziej zaskoczyło?
HTTP i TCP/IP
HTTP jest protokołem zbudowanym na bazie protokołów TCP/IP.
Każde żądanie HTTP znajduje się wewnątrz pakietu IP, a każda odpowiedź HTTP znajduje się wewnątrz innego pakietu IP - lub, co bardziej typowe, wielu pakietów, ponieważ dane odpowiedzi mogą być dość duże.
Istnieje wiele innych protokołów zbudowanych na bazie protokołu TCP/IP, takich jak protokoły wysyłania poczty elektronicznej (SMTP, POP, IMAP) i przesyłania plików (FTP).
Wszystkie te protokoły umożliwiają nam korzystanie z Internetu w celu łączenia się z innymi komputerami w odpowiedni sposób, a także komunikację i współpracę na duże odległości.
🙋🏽🙋🏻♀️🙋🏿♂️Czy masz jakieś pytania na ten temat? Chętnie na nie odpowiemy — wystarczy, że zadasz pytanie w poniższym obszarze pytań!
Chcesz dołączyć do dyskusji?
Na razie brak głosów w dyskusji