Ten materiał jest częścią serii „Wprowadzenie do rozwoju przedsiębiorstwa”. Poprzednie artykuły:
Cześć! Dzisiaj poznamy protokoły HTTP i HTTPS. Ale najpierw wyjaśnijmy jedną kwestię: mówimy o protokołach przesyłania danych przez sieć na poziomie aplikacji modelu OSI. Być może pamiętasz, że model OSI poznaliśmy w jednym z poprzednich artykułów. Jeśli tego nie pamiętasz, oto on .

Co to jest protokół transmisji danych?
Nazywamy to uzgodnionym zestawem reguł, które umożliwiają programistom różnych usług wysyłanie informacji w formacie zrozumiałym dla innych. Na przykład możesz użyć Google Chrome, aby uzyskać informacje zarówno z Facebooka, jak i Twittera, ponieważ programiści przesyłają je za pomocą standardowego protokołu HTTP, który umożliwia przeglądarce ich przetwarzanie. Jednolite zasady są bardzo wygodne dla osób rozwijających część serwerową: istnieje wiele bibliotek, które mogą konwertować informacje i przesyłać je za pomocą odpowiedniego protokołu. HTTP został początkowo pomyślany jako protokół do wysyłania stron HTML. W ten sposób był używany przez długi czas, ale teraz programiści często używają go do wysyłania zarówno ciągów znaków, jak i plików multimedialnych. Ogólnie rzecz biorąc, protokół ten jest powszechnie akceptowany i wszechstronny oraz jest naprawdę łatwy w użyciu. A teraz zbadamy, jak go używać.Struktura protokołu HTTP
Należy od razu zauważyć, że protokół HTTP składa się wyłącznie z tekstu. Najbardziej interesuje nas struktura tego tekstu. Każda wiadomość składa się z trzech części:- Linia początkowa — definiuje niektóre dane porządkowe.
- Nagłówki — opisują parametry wiadomości.
- Treść — To jest treść wiadomości. Treść musi być oddzielona od nagłówków pustą linią.
Oto jak wygląda proste żądanie HTTP:
GET / HTTP/1.1
Host: codegym.cc
User-Agent: firefox/5.0 (Linux; Debian 5.0.8; en-US; rv:1.8.1.7)
Linia startu wskazuje:
- GET — Metoda żądania
- / — Ścieżka żądania
- HTTP/1.1 — Wersja protokołu
- Host — Host, do którego kierowane jest żądanie
- User-Agent — Klient wysyłający żądanie
https://cdn.codegym.cc/images/article/155cea79-acfd-4968-9361-ad585e939b82/original.pngsend?name1=value1&name2=value2
gdzie codegym.cc to host, /send to ścieżka żądania, a ? jest separatorem wskazującym, że następują parametry zapytania. Na końcu wymienione są pary klucz-wartość („klucz=wartość”), oddzielone ampersandem. POST — Ta metoda publikuje informacje na serwerze. Żądanie POST może wysyłać różne rodzaje informacji: parametry jako pary klucz=wartość, JSON, kod HTML, a nawet pliki. Wszystkie informacje są przesyłane w treści wiadomości. Na przykład:
POST /user/create/json HTTP/1.1
Accept: application/json
Content-Type: application/json
Content-Length: 28
Host: codegym.cc
{
"Id": 12345,
"User": "John"
}
Żądanie jest wysyłane do codegym.cc/user/create/json, a wersja protokołu to HTTP/1.1. „Akceptuj” wskazuje format odpowiedzi, jaki klient oczekuje. „Content-Type” wskazuje format treści wiadomości wysłanej w żądaniu. „Długość treści” to liczba znaków w treści. Żądanie HTTP może zawierać wiele różnych nagłówków. Aby uzyskać więcej informacji, zapoznaj się ze specyfikacją protokołu .
Odpowiedzi HTTP
Po otrzymaniu żądania serwer przetwarza je i wysyła odpowiedź do klienta:
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 98
<html>
<head>
<title>An Example Page</title>
</head>
<body>
<p>Hello World</p>
</body>
</html>
Linia początkowa odpowiedzi zawiera wersję protokołu (HTTP/1.1), kod statusu (200) oraz opis statusu (OK). Jego nagłówki zawierają rodzaj i długość treści. Treść odpowiedzi zawiera kod HTML, który przeglądarka renderuje jako stronę HTML.
Kody statusu odpowiedzi
Jeśli chodzi o treść i nagłówki wiadomości, wszystko jest jasne, ale należy powiedzieć kilka słów o kodach statusu. Kody statusu odpowiedzi są zawsze trzycyfrowe. Pierwsza cyfra kodu wskazuje kategorię odpowiedzi:- 1xx — Informacyjny. Prośba została przyjęta. Serwer jest gotowy do kontynuowania.
- 2xx — pomyślnie. Żądanie zostało przyjęte, zrozumiane i przetworzone.
- 3xx — Przekierowanie. Aby przetworzyć żądanie, należy wykonać dodatkowe czynności.
- 4xx — Błąd klienta. Żądanie zawiera błędy lub jest niezgodne z protokołem.
- 5xx — Błąd serwera. Żądanie zostało utworzone poprawnie, ale serwer nie mógł go przetworzyć.
- 200 OK — Żądanie zostało odebrane i pomyślnie przetworzone.
- 201 Utworzono — Żądanie zostało odebrane i pomyślnie przetworzone, w wyniku czego utworzono nowy zasób lub instancję.
- 301 Przeniesiony na stałe — Żądany zasób został przeniesiony na stałe. Kolejne żądania do niego należy kierować z wykorzystaniem nowego adresu.
- 307 Temporary Redirect — Zasób został tymczasowo przeniesiony. Na razie można uzyskać do niego dostęp za pomocą automatycznego przekierowania.
- 403 Forbidden — Żądanie zostało zrozumiane, ale wymagana jest autoryzacja.
- 404 Not Found — Serwer nie znalazł zasobu pod tym adresem.
- 501 Not Implemented — Serwer nie obsługuje funkcji wymaganych do odpowiedzi na żądanie.
- 505 HTTP Version Not Supported — Serwer nie obsługuje określonej wersji protokołu HTTP.
GO TO FULL VERSION