Ответ
Клиент (браузер, мобильное приложение, другой сервис) отправляет на backend данные в рамках HTTP(S)-запросов или через другие протоколы. Основные виды отправляемых данных:
1. HTTP-запросы с их компонентами:
- Метод и эндпоинт: Определяют действие (GET, POST, PUT, DELETE, PATCH) и цель запроса (
/api/v1/users). - Заголовки (Headers): Метаданные запроса.
Content-Type— формат тела запроса (например,application/json).Authorization— токен или данные для аутентификации (например,Bearer <JWT>).User-Agent,Accept,Accept-Language.
- Тело запроса (Body): Актуально для POST, PUT, PATCH.
- JSON — самый распространенный формат для REST API.
{ "name": "Alice", "email": "alice@example.com", "active": true } - Form Data (
application/x-www-form-urlencodedилиmultipart/form-data) — для отправки форм и файлов.
- JSON — самый распространенный формат для REST API.
- Параметры строки запроса (Query Parameters): Для GET-запросов, фильтрации, пагинации.
- Пример:
GET /api/products?category=books&page=2
- Пример:
2. Файлы:
Отправляются через multipart/form-data, часто как часть формы.
3. Состояние сессии:
- Cookies — автоматически отправляются браузером с каждым запросом к домену.
- Токены — обычно в заголовке
Authorization.
4. Для real-time взаимодействия:
- Сообщения по WebSocket — после установки соединения клиент и сервер обмениваются данными в реальном времени.
Полный пример POST-запроса (клиент -> backend):
POST /api/auth/login HTTP/1.1
Host: api.example.com
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
{
"username": "johndoe",
"password": "my_secure_password_123"
}