Сетевые основы
Отлично, следующая тема как раз по плану 🔥
Сетевые основы для веб-разработчика
Цель:
Не вдаваясь в слишком глубокий уровень "пакетов TCP", но — чтобы ты как мидл уверенно понимал, как данные бегают по сети, как работает веб-приложение, как устроен API-запрос, и чтобы мог объяснить это на собеседовании, а главное — в работе.
🧩 Основы, которые ты должен знать уверенно:
- HTTP/HTTPS — как работает протокол
- TCP / UDP — зачем они нужны
- DNS — как домен превращается в IP
- IP / Порты — как сервер принимает соединения
- CORS — что это и зачем нужен
- Кэширование — типы, заголовки
- WebSocket — как работает постоянное соединение
- API и заголовки — как идёт обмен данными
1. HTTP / HTTPS
Протокол передачи данных клиент ↔ сервер (браузер ↔ бэкенд)
- Клиент открывает TCP-соединение с сервером
- Отправляет HTTP-запрос:
- Метод (GET, POST, PUT, DELETE)
- Заголовки (Headers)
- Тело запроса (Body)
- Сервер возвращает HTTP-ответ:
- Статус код (200 OK, 404 Not Found, 500 Server Error)
- Заголовки
- Тело (JSON, HTML)
Важно:
- HTTPS = HTTP + шифрование через TLS
- Никогда не передавай данные по HTTP без SSL (особенно токены/пароли)
2. TCP / UDP
Без установки соединения
Без гарантий
Может быть нарушен
Стриминг видео, игры, DNS
| TCP | |
|---|---|
| Устанавливается с рукопожатием | |
| Гарантия доставки | |
| Сохраняется | |
| HTTP, HTTPS, SMTP |
→ Твои веб-приложения почти всегда работают поверх TCP, потому что он гарантирует доставку данных.
3. DNS — как домен превращается в IP
- Когда пользователь открывает
example.com, браузер делает DNS-запрос. - DNS-сервер возвращает IP-адрес, например,
192.0.2.1. - После этого клиент открывает TCP-соединение с этим IP по нужному порту (обычно 443 для HTTPS).
4. IP и порты
- IP-адрес — это адрес сервера в интернете.
- Порт — как квартира в доме: куда именно в сервере направить трафик.
- HTTP: порт 80
- HTTPS: порт 443
- WebSocket: тот же порт, что и HTTP/HTTPS, если через WSS.
5. CORS (Cross-Origin Resource Sharing)
Защита браузера от междоменных запросов.
Если твой фронтенд (frontend.com) делает запрос на другой домен (api.backend.com), браузер проверяет заголовок:
Access-Control-Allow-Origin: https://frontend.com
Если его нет — браузер блокирует ответ.
Разработчику важно:
- На бэкенде настраивается заголовок CORS
- В dev-среде часто временно разрешают
*, но в проде так делать нельзя
6. Кэширование
Ускорение работы через сохранение ответов
Виды кэша:
- HTTP-кэш: браузер сохраняет ответ (статичные файлы, API)
- Server-side cache: Redis, Memcached
- CDN cache: кеширует статику и контент на узлах доставки
Заголовки:
Cache-Control: public, max-age=3600 ETag: "abc123"
max-age— сколько секунд держать кэшETag— идентификатор версии ресурса
7. WebSocket
Протокол для постоянного соединения клиент ↔ сервер.
- HTTP-соединение апгрейдится до WebSocket.
- Данные передаются в обе стороны в режиме реального времени.
- Используется для чатов, уведомлений, realtime-игр.
8. API и заголовки
Запрос API всегда содержит заголовки, например:
POST /api/task HTTP/1.1 Host: api.example.com Authorization: Bearer <token> Content-Type: application/json
Ответ сервера:
HTTP/1.1 201 Created Content-Type: application/json {"id":123, "status":"ok"}
📌 Важно уметь:
- Читать заголовки
- Понимать код ответа
- Понимать как кешируется API-ответ
🎯 Что важно знать на собеседовании
- Как проходит HTTP-запрос от клиента до сервера
- Чем TCP отличается от UDP
- Как работает DNS-запрос
- Что такое CORS и как его настроить
- Как кэшируются ответы API
- Как устроены API-заголовки
- Как работает WebSocket
Хочешь — можем пойти дальше:
- Либо разберём практику: я дам тебе реальные ситуации (например, CORS ошибка, 502 bad gateway), а ты скажешь, что происходит и как лечить.
- Либо сразу следующая тема из плана: Тестируемость и юнит-тесты.
Твой ход 🚀