Как работает web - request & response

Здесь мы с вами узнаем что происходит когда мы заходим на какую либо страницу, что за http ответы и запросы и какие протоколы в этом участвуют.

client–server

Если очень просто, то вот вся модель: Мы создаем запрос(request) и нам на наш запрос приходит ответ(respone). Это называется "Модель запрос-ответ или Клиент-серверная архитектура."

requestAndResponse

Но разберемеся немного подробнее.

URL & DNS

Наш url по которому мы переходим, состоит из трех частей.

  1. HTTP или HTTPS протокол
  2. Название домена
  3. Ресурс к которому мы хотим получить доступ.
url

За каждым доменным именем стоит IP адрес. Каждый раз когда мы пытаемся получить доступ к серверу, заходим на сайт например, наш браузер делает запрос к DNS(domain name system).

  • DNS - Это база(или система) серверов, которая используется для получения IP адресов.

Так вот DNS сопоставляет наше доменное имя с реальным адресом в сети.

DNS

Далее браузер получает этот IP адрес. Который в свою очередь тоже состоит из 3 частей

  1. HTTP или HTTPS протокол
  2. IP адрес
  3. Номер порта - по умолчанию 443 для HTTPS & 80 для HTTP
IP
  • Порт позволяет нам получить доступ на сервере для передачи определенных данных, он идентифицирует определенную службу которая запущена на сервере. Это как бы под адрес. Порт не имеет ничего общего с ресурсом из URL, ресурс будет отправлен в HTTP запросе.

TCP/IP socket connection

После того, как мы имеем реальный IP адрес, между браузером и сервером устанавливается TCP/IP socket connection - соединение в общем.

TCPIP

Это соединение остается на протяжении всего времени, пока доставляются данные. TCP/IP вместе они представляют собой протоколы взаимодействия, которые определяют как данные перемещаются по интернету. О них мы поговорим немного позже.

HTTP request

После того как у нас установится соединение, мы делаем сам HTTP запрос.
HTTP - означает HyperText Transfer Protocol, протокол перемещения гипер текста. Это протокол взаимодействия, который позвляет двум или более сторонам взаимодействовать дург с другом. HTTP работает при помощи отправки сообщений (запросов) и ответов. От клиента к серверу и назад.

Вот примерно так выглядит request:

HTTP_request
  • Первым делом обычно идет HTTP метод + target запроса или url - ресурс + HTTP версия.
  • Далее идут headers request тут разные варианты.
  • Дальше тело запроса body оно есть только при отправке данных.

Глянем на примерее нашего сайта в google chrome:

request_chrome

А вот как это выглялит в браузере Mozilla Firefox:

request_mozilla

Далее запрос обрабатывается сервером, в зависимости что мы от него хотим. И когда сервер нам готов ответить он отправляет нам ответ.

HTTP response

Данные в ответ отправляются уже с помощью HTTP respone, тут примерно такое же сообщение как и было в запросе.

HTTP_response

Тут все примерно так же

  • Первым делом идет HTTP версия + статус код + статус сообщение.
  • Далее идут headers response тут опять же разные варианты.
  • Ну и тело запроса body - обычно это запрошенный JSON или HTML

На вкладке Network в инспекторе кода можно все это самому посмотреть на любом сайте. Если мы работаем не с API, а просто заходим на веб страницу, то важно понимать, первым делом мы получаем саму html страницу!

  • Первым загружает index.html
  • Далее идет сканирование ресурсов - js,css и изображения и так далее.
  • Процесс повторяется для каждого файла. То есть для каждого файла будет новый HTTP request

Вот напримере нашего сайта, видно, что первым загружается главная html страница.

HTTP_response

Подробнее TCP/IP

Мы уже говорили, что это протоколы взаимодействия которые определяют каким образом данные перемещаются по интернету. Без подробностей узнаем конкретнее для чего они нужны.

TCP - Transmission Control Protocol

Прежде всего TCP разбивает запросы и ответы на огромное количество маленьких кусочков, такие куски называются - пакеты. Делается это прежде чем, ответ будет отослан. Каждый из этих пакетов идет по своему пути в интернете, так они приходят намного быстрее. После того, как ответ получен, TCP из этих пакетов пересоберет данные которые были запрошенны.

IP - Internet Protocol

Работа IP заключается в том, что бы отправлять пакеты и регулировать их отправку по нужному адресу. Именно IP удостоверяется, что данные доставлены по нужному IP адресу.