Какие протоколы и стандарты регулируют взаимодействие между клиентом и сервером?

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

Ответ

Взаимодействие в веб-среде регулируется стеком протоколов и архитектурными стилями:

1. Транспортный и сетевой уровень:

  • TCP/IP — обеспечивает надежную доставку пакетов данных.

2. Протоколы уровня приложения:

  • HTTP/HTTPS — фундаментальный протокол для обмена данными. HTTPS добавляет шифрование через SSL/TLS.
  • WebSocket — для полноценной двусторонней (duplex) связи в реальном времени.

3. Архитектурные стили и форматы данных (работают поверх HTTP):

  • REST (Representational State Transfer) — архитектурный стиль, использующий стандартные HTTP-методы и ресурсы (URL).
  • GraphQL — язык запросов, позволяющий клиенту точно запрашивать нужные данные.
  • Форматы данных: JSON (наиболее распространен), XML.

4. Механизмы управления доступом и состоянием:

  • Аутентификация и авторизация: OAuth 2.0, JWT (JSON Web Tokens).
  • Куки (Cookies) и сессии для управления состоянием пользователя.

Пример RESTful запроса:

POST /api/articles HTTP/1.1
Host: blog.example.com
Authorization: Bearer <JWT_TOKEN>
Content-Type: application/json

{"title": "New Post", "content": "Hello World"}