Здесь мы с вами узнаем что происходит когда мы заходим на какую либо страницу, что за http ответы и запросы и какие протоколы в этом участвуют.
Если очень просто, то вот вся модель: Мы создаем запрос(request) и нам на наш запрос приходит ответ(respone). Это называется "Модель запрос-ответ или Клиент-серверная архитектура."
Но разберемеся немного подробнее.
Наш url по которому мы переходим, состоит из трех частей.
За каждым доменным именем стоит IP
адрес.
Каждый раз когда мы пытаемся получить доступ к серверу, заходим на сайт например, наш браузер делает запрос к DNS(domain name system)
.
IP
адресов.Так вот DNS
сопоставляет наше доменное имя с реальным адресом в сети.
Далее браузер получает этот IP
адрес. Который в свою очередь тоже состоит из 3 частей
URL
, ресурс будет отправлен в HTTP запросе.После того, как мы имеем реальный IP
адрес, между браузером и сервером устанавливается TCP/IP socket connection
- соединение в общем.
Это соединение остается на протяжении всего времени, пока доставляются данные.
TCP/IP
вместе они представляют собой протоколы взаимодействия, которые определяют как данные перемещаются по интернету. О них мы поговорим немного позже.
После того как у нас установится соединение, мы делаем сам HTTP
запрос.
HTTP
- означает HyperText Transfer Protocol
, протокол перемещения гипер текста. Это протокол взаимодействия, который позвляет двум или более сторонам взаимодействовать дург с другом.
HTTP
работает при помощи отправки сообщений (запросов) и ответов. От клиента к серверу и назад.
Вот примерно так выглядит request
:
HTTP
метод + target
запроса или url
- ресурс + HTTP
версия.headers request
тут разные варианты.body
оно есть только при отправке данных.Глянем на примерее нашего сайта в google chrome:
А вот как это выглялит в браузере Mozilla Firefox:
Далее запрос обрабатывается сервером, в зависимости что мы от него хотим. И когда сервер нам готов ответить он отправляет нам ответ.
Данные в ответ отправляются уже с помощью HTTP respone
, тут примерно такое же сообщение как и было в запросе.
Тут все примерно так же
HTTP
версия + статус код + статус сообщение.headers response
тут опять же разные варианты.body
- обычно это запрошенный JSON
или HTML
На вкладке Network
в инспекторе кода можно все это самому посмотреть на любом сайте.
Если мы работаем не с API
, а просто заходим на веб страницу, то важно понимать, первым делом мы получаем саму html
страницу!
index.html
HTTP request
Вот напримере нашего сайта, видно, что первым загружается главная html страница.
Мы уже говорили, что это протоколы взаимодействия которые определяют каким образом данные перемещаются по интернету. Без подробностей узнаем конкретнее для чего они нужны.
Прежде всего TCP
разбивает запросы и ответы на огромное количество маленьких кусочков, такие куски называются - пакеты.
Делается это прежде чем, ответ будет отослан. Каждый из этих пакетов идет по своему пути в интернете, так они приходят намного быстрее. После того, как ответ получен, TCP
из этих пакетов пересоберет данные которые были запрошенны.
Работа IP
заключается в том, что бы отправлять пакеты и регулировать их отправку по нужному адресу. Именно IP
удостоверяется, что данные доставлены по нужному IP
адресу.