🌐 Сначала появляется DNS
Когда вы вводите в браузере адрес вроде example.com, компьютер должен понять, на какой IP-адрес необходимо отправить запрос.
Для этого используется система DNS — Domain Name System. Её можно представить как огромную телефонную книгу Интернета.
DNS не обязательно обращается к корневым серверам каждый раз. Результаты запросов обычно кэшируются, благодаря чему сайты открываются значительно быстрее.
📡 Затем браузер отправляет запрос
После получения IP-адреса браузер устанавливает соединение с сервером и отправляет HTTP-запрос.
Сервер получает этот запрос и должен решить, какой ответ отправить клиенту.
🖥️ Что происходит на сервере?
Сервер может быть обычным компьютером или огромной распределённой инфраструктурой из сотен и тысяч машин.
Nginx
Может принимать HTTP-запросы, отдавать статические файлы и распределять нагрузку между серверами.
База данных
Хранит информацию пользователей, товары, документы, настройки и другие данные приложения.
Приложение
Выполняет бизнес-логику и формирует динамический ответ на запрос пользователя.
🔄 Путь одного запроса
Браузер
Пользователь вводит адрес сайта.
DNS
Домен преобразуется в IP-адрес.
TCP / TLS
Создаётся сетевое соединение и, при HTTPS, устанавливается защищённый канал.
HTTP
Браузер отправляет HTTP-запрос серверу.
Сервер
Nginx, Apache или другое приложение обрабатывает запрос.
Ответ
Сервер отправляет HTML, CSS, JavaScript, изображения и другие данные обратно браузеру.
🔐 Почему используется HTTPS?
Обычный HTTP передаёт данные без шифрования. HTTPS добавляет TLS и защищает соединение между клиентом и сервером.
Конфиденциальность
Посторонний наблюдатель не может просто прочитать содержимое передаваемых данных.
Целостность
Данные защищены от незаметного изменения во время передачи.
Аутентификация
Сертификат позволяет браузеру проверить, с каким сервером устанавливается соединение.
🚀 А что происходит дальше?
После получения HTML браузер начинает загружать дополнительные ресурсы: CSS, JavaScript, изображения, шрифты и другие файлы.
Некоторые из них могут находиться на других серверах. Именно поэтому современная веб-страница может породить десятки и даже сотни сетевых запросов.
Между браузером и конечным сервером могут находиться DNS-серверы, маршрутизаторы, firewall, CDN, reverse proxy, load balancer и несколько серверов приложения.