Как работает клиент-серверное взаимодействие в вебе?

«Как работает клиент-серверное взаимодействие в вебе?» — вопрос из категории Архитектура, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Взаимодействие основано на модели «клиент-сервер» с использованием протоколов HTTP/HTTPS. Клиент (например, браузер) инициирует запрос, а сервер обрабатывает его и возвращает ответ.

Основные этапы:

  1. DNS-запрос: Преобразование доменного имени (например, example.com) в IP-адрес сервера.
  2. Установка TCP-соединения: «Рукопожатие» (handshake) для создания надежного канала связи.
  3. Отправка HTTP-запроса: Клиент формирует запрос с методом (GET, POST и т.д.), заголовками и, при необходимости, телом.
  4. Обработка на сервере: Серверное приложение (бэкенд) выполняет бизнес-логику, обращается к базе данных и готовит ответ.
  5. Получение HTTP-ответа: Сервер возвращает статусный код (200 OK, 404 Not Found), заголовки и данные (HTML, JSON, XML).

Пример HTTP-запроса и ответа:

GET /api/users/1 HTTP/1.1
Host: api.example.com
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": 1,
  "name": "Alice"
}

Почему HTTPS? Протокол HTTPS добавляет шифрование поверх HTTP (с помощью TLS/SSL), обеспечивая конфиденциальность и целостность передаваемых данных.