Kodokon kodokon.com

Как работает интернет: клиент, сервер, запрос

Разберись, кто у кого что просит, когда на экране появляется веб-страница.

7 мин · 3 вопросов

Открыть этот урок в Kodokon

Представь ресторан. Ты садишься за столик, зовёшь официанта, заказываешь блюдо, и официант его приносит. Веб устроен ровно так же. Ты со своим браузером - это клиент: именно ты просишь. С другой стороны находится сервер: компьютер, включённый круглые сутки где-нибудь в здании с кондиционерами, единственная работа которого - ждать запросы и отвечать на них. В сервере нет ничего магического: это такая же машина, как твоя, только она никогда не спит и у неё нет экрана.

Самое важное, что стоит запомнить: сервер никогда не делает первый шаг. Он не пришлёт тебе ничего, пока ты сам чего-нибудь не попросишь. Каждый раз, когда ты вводишь адрес или кликаешь по ссылке, твой браузер отправляет запрос, а сервер возвращает ответ. Запрос, ответ. Запрос, ответ. Весь веб сводится к этому обмену.

Чтобы запрос дошёл до адресата, у каждой подключённой машины есть IP-адрес: набор чисел, который работает как почтовый адрес, например 93.184.215.14. Твоё сообщение отправляется не целиком: оно нарезается на маленькие кусочки, которые называются пакетами. Каждый пакет едет своей дорогой через десятки промежуточных машин, а на месте они снова собираются в правильном порядке. Проверить, что машина отвечает, можно командой ping.

BASH
ping -c 2 example.com

PING example.com (23.215.0.136): 56 data bytes
64 bytes from 23.215.0.136: icmp_seq=0 ttl=54 time=17.3 ms
64 bytes from 23.215.0.136: icmp_seq=1 ttl=54 time=16.9 ms

--- example.com ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
В Windows пиши ping -n 2 example.com. IP-адрес у тебя может оказаться другим: это нормально.

А что именно возвращает сервер? Текст. Веб-страница - это всего лишь текстовый файл на HTML, который сервер тебе высылает, а браузер оформляет. Увидеть это своими глазами можно и без браузера, с помощью инструмента curl: он отправляет запрос и выводит сырой ответ прямо в терминал.

BASH
curl -s https://example.com | head -n 5

<!doctype html>
<html>
<head>
    <title>Example Domain</title>
    <meta charset="utf-8" />
curl запрашивает страницу, а head -n 5 показывает только первые 5 строк.

Проверка знаний

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

  1. Кто в веб-обмене делает первый шаг?
    • Сервер: он отправляет страницы, когда сам решит
    • Клиент, то есть твой браузер
    • Домашний роутер, который раздаёт страницы
  2. Что такое веб-сервер?
    • Компьютер, включённый круглые сутки, который отвечает на запросы
    • Кабель, который соединяет твой дом с сетью
    • Программа, которая показывает страницы на твоём экране
  3. На странице есть таблица стилей и три изображения. Сколько примерно запросов отправит браузер?
    • Всего один, всё приходит целиком
    • Два: сначала страница, потом файлы одной пачкой
    • Минимум пять: по одному на каждый файл