Как работает веб
Тема дорожной карты · Backend разработчик
Понимание работы веба — это фундаментальные знания, необходимые каждому бэкенд-разработчику для обоснования решений по производительности, безопасности и архитектуре систем. Когда пользователь вводит URL в браузер, DNS разрешает доменное имя в IP-адрес, браузер устанавливает TCP-соединение (или повторно использует существующее через HTTP/2 connection coalescing), проводит TLS-рукопожатие для установки зашифрованного HTTPS-канала и отправляет HTTP-запрос с методом (GET, POST), путём и заголовками (Host, Accept, Authorization). Сервер — обычно Nginx или Caddy как TLS-терминирующий обратный прокси перед приложением на Node.js, Python или Java — получает запрос, маршрутизирует его в соответствующий обработчик, выполняет бизнес-логику (запрос к PostgreSQL, чтение из Redis, публикация в Kafka) и возвращает HTTP-ответ с кодом состояния, заголовками (Content-Type, Cache-Control, Set-Cookie) и телом, сериализованным как JSON, HTML или Protobuf. Мультиплексирование HTTP/2, server push и сжатие заголовков снижают задержку для многоресурсных страниц, тогда как обновление соединения WebSocket превращает HTTP-соединение в полнодуплексный канал, обеспечивающий двунаправленную коммуникацию в реальном времени для чатов, живых панелей мониторинга и инструментов совместного редактирования. Работа веба в масштабе также предполагает CDN (Cloudflare, Fastly), кеширующие статические ресурсы на граничных узлах, балансировщики нагрузки, распределяющие трафик между несколькими репликами приложения в Kubernetes-кластере, и CI/CD-пайплайны, развёртывающие новые версии без простоя через rolling-обновления.
Как это работает
Как работает веб строится на client-server модели: backend экспонирует API (HTTP, gRPC, GraphQL или message-based), который зовут клиенты. Сервер — это процесс на хосте, слушающий порт, принимающий соединения, гоняющий бизнес-логику и читающий/пишущий хранилище. Современные backend'ы — stateless процессы; состояние живёт в БД, кешах, object storage; это позволяет масштабироваться горизонтально, добавляя реплики за балансировщиком. 12-Factor App — канонический baseline для cloud-native backend.
Когда применять
Стройте backend, когда нужно общее состояние между клиентами (multi-user приложения, persistence), границы доверия (нельзя слать секреты в клиент) или тяжёлый compute, который клиент не потянет. Пропустите backend для чистых статичных сайтов (Astro, Hugo, plain HTML) — CDN достаточно. Для realtime multi-user фич (чат, коллаборация) — стек с WebSocket / SSE (Node, Elixir, Go, Phoenix).
Типичные ошибки
Ловушки Как работает веб: "backend" внутри frontend (чувствительная логика в клиентском JS — видна в DevTools); over-engineering с первого дня (микросервисы для приложения на 100 юзеров); игнор 12-Factor (захардкоженный конфиг, состояние на ФС, нет graceful shutdown) — потом платите при контейнеризации; выбор стека по тренду, а не по сильным сторонам команды. Начинайте монолитом с чёткими границами модулей; разделяйте при необходимости.