Перейти к содержимому

Лекция 2. Сетевые основы интернет-приложений

1. Модели и инкапсуляция

Модель OSI (7 уровней)

УровеньФункцииПротоколыЕдиницы данных
7. ПрикладнойИнтерфейс пользователяHTTP, HTTPS, FTP, SMTP, DNSСообщения
6. ПредставительскийШифрование, сжатиеSSL/TLS, JPEG, MPEGДанные представления
5. СеансовыйУправление сессиямиNetBIOS, RPCДанные сессии
4. ТранспортныйСквозная доставка данныхTCP, UDP, SCTPСегменты
3. СетевойМаршрутизацияIP, ICMP, OSPFПакеты
2. КанальныйПередача между узламиEthernet, Wi-Fi, PPPКадры
1. ФизическийПередача битовEthernet, Wi-Fi, BluetoothБиты

Модель TCP/IP (4 уровня)

УровеньСоответствует OSIПротоколыФункции
Прикладной5-7 уровниHTTP, HTTPS, WebSocket, gRPCСетевые службы
Транспортный4 уровеньTCP, UDP, SCTPСквозная доставка
Сетевой3 уровеньIP, ICMP, BGPМаршрутизация
Канальный1-2 уровниEthernet, Wi-Fi, ARPФизическая передача

Важно: В разработке интернет-приложений ключевы два верхних уровня TCP/IP:

  • Транспортный (TCP, UDP) - надежная доставка данных
  • Прикладной (HTTP, WebSocket, gRPC) - формат и семантика обмена

Инкапсуляция данных: каждый уровень добавляет свой заголовок; на приёме происходит обратная декапсуляция.

2. Транспортный уровень

TCP (Transmission Control Protocol)

  • Характеристики: соединение, упорядоченность, ACK/повторы, окна, контроль перегрузки
  • Применение: веб (HTTP/HTTPS), почта, БД, SSH
  • Handshake: 3-way (SYN → SYN-ACK → ACK)

UDP (User Datagram Protocol)

  • Характеристики: без соединения и гарантий, минимальная задержка
  • Применение: стримы/RTC, игры, DNS, телеметрия

SCTP (Stream Control Transmission Protocol)

  • Характеристики: мультипотоки, частичная упорядоченность, защита от SYN-flood, мульти-homing

3. Прикладные протоколы

HTTP эволюция

  • HTTP/0.9 (1991): только GET
  • HTTP/1.1 (1997): keep-alive, кэш, пайплайнинг
  • HTTP/2 (2015): бинарный, мультиплексирование, HPACK
  • HTTP/3 (2022): QUIC, устойчив к потерям

HTTPS/TLS

  • Функции: шифрование, аутентификация, целостность
  • Стандарт: TLS 1.3

WebSocket

  • Характеристики: постоянное двустороннее соединение поверх TCP
  • Handshake: через HTTP Upgrade

gRPC

  • Основа: HTTP/2 + Protocol Buffers
  • Особенности: строгие контракты, потоки (unary/streaming), мультиязычность

4. HTTP - структура обмена

Структура запроса

Метод URI HTTP/версия
Заголовки
[Тело запроса]

Важные группы заголовков

  • Контент: Content-Type, Content-Length, Content-Encoding
  • Кэш: Cache-Control, ETag, Last-Modified
  • Аутентификация: Authorization, Cookie
  • CORS: Origin, Access-Control-*

HTTP методы

МетодБезопасныйИдемпотентныйОписание
GETПолучение ресурса
POSTСоздание ресурса
PUTОбновление/создание
DELETEУдаление ресурса
HEADЗаголовки ресурса
OPTIONSПоддерживаемые методы

Коды состояния HTTP

  • 2xx: 200 OK, 201 Created, 204 No Content
  • 3xx: 301 Moved Permanently, 302 Found, 304 Not Modified
  • 4xx: 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 429 Too Many Requests
  • 5xx: 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable, 504 Gateway Timeout

5. Форматы данных

JSON

  • Преимущества: компактный, быстрый парсинг, универсален в вебе
  • Применение: основной формат обмена данными

HTML

  • Назначение: разметка UI
  • Версии: HTML5 с семантическими элементами

XML

  • Особенности: строгая структура и валидация
  • Применение: конфигурации, обмен данными между системами

YAML

  • Назначение: конфигурации
  • Особенности: читаемость, отступы

Бинарные форматы

  • Protobuf: компактность/скорость для высоких нагрузок
  • MessagePack: совместимость с JSON

6. Жизненный цикл HTTP-запроса

  1. Инициация: Действие пользователя → DNS-резолюция → TCP (3-way handshake) → TLS handshake (HTTPS)
  2. Отправка: Формирование запроса и отправка через сеть
  3. Обработка: Сервер: парсинг → маршрутизация → authN/authZ → бизнес-логика → БД
  4. Ответ: Формирование ответа и отправка клиенту
  5. Клиент: Парсинг, обновление UI (DOM/рендер)

7. Безопасность

Основные угрозы

  • Перехват (sniffing): пассивное прослушивание трафика
  • Подмена (spoofing/MitM): изменение передаваемых данных
  • DoS/DDoS: отказ в обслуживании

Средства защиты

  • Протоколы: TLS/HTTPS, IPSec, DNSSEC
  • Заголовки: HSTS, CSP, X-Frame-Options, X-Content-Type-Options
  • Аутентификация: JWT, OAuth 2.0, OpenID Connect

8. Производительность и надёжность

Метрики

  • Latency: задержка от запроса до ответа
  • Throughput: пропускная способность
  • Bandwidth: полоса пропускания
  • Reliability: надёжность доставки
  • Scalability: масштабируемость

Техники оптимизации

  • HTTP/2/3: мультиплексирование, сжатие заголовков
  • Кэширование: Cache-Control/ETag + CDN
  • Сжатие: Gzip/Brotli
  • Балансировка: Load Balancer/Reverse proxy
  • Мониторинг: APM, RUM, synthetic

Практические рекомендации

Фронтенд

  • Минимизация запросов
  • Агрессивный кэш статических ресурсов
  • Preconnect/HTTP/2
  • Lazy-loading

Бэкенд

  • Эффективные БД-запросы
  • Connection pooling
  • Асинхронность
  • Rate limiting

9. Практические советы

Обязательные практики

  • ✅ Используйте HTTPS и современные заголовки безопасности
  • ✅ Для API: чёткие контракты, корректные коды состояния, кэширование и пагинация
  • ✅ Выбирайте протокол под задачу:
    • HTTP для запрос-ответ
    • WebSocket для real-time
    • gRPC для межсервисного RPC
  • ✅ Измеряйте и оптимизируйте: метрики → гипотеза → эксперимент → внедрение

Заключение

Понимание моделей, протоколов, структуры HTTP, форматирования данных, безопасности и оптимизаций — фундамент для проектирования быстрых, безопасных и масштабируемых интернет-приложений.