Ответ
Структура HTTP-запроса состоит из трех обязательных частей, следующих в строгом порядке:
-
Стартовая строка (Request Line)
- Метод (HTTP Method): Определяет действие (GET, POST, PUT, DELETE, PATCH и др.).
- Путь к ресурсу (Request Target): URL-путь (и опционально query-параметры).
- Версия HTTP (HTTP Version): Например,
HTTP/1.1илиHTTP/2.GET /api/users?active=true HTTP/1.1
-
Заголовки (Headers)
- Метаданные запроса в формате
Имя: Значение. Каждый заголовок — на новой строке. - Определяют клиента, тип контента, кодировку, куки, авторизацию и т.д.
Host: api.example.com User-Agent: Mozilla/5.0 Content-Type: application/json Authorization: Bearer <token>
- Метаданные запроса в формате
-
Тело запроса (Request Body)
- Опциональная часть. Используется для передачи данных серверу (в методах POST, PUT, PATCH).
- Формат данных указывается в заголовке
Content-Type.{ "username": "johndoe", "email": "john@example.com" }
Важно: Для GET и HEAD запросов тело обычно отсутствует, а параметры передаются в URL (query string). Запрос завершается пустой строкой (CRLF), отделяющей заголовки от тела.