HTTP-запрос состоит из следующих компонентов:
Стартовая строка (Request Line): Определяет тип запроса и ресурс. Состоит из:
plaintext
Заголовки запроса (Request Headers): Предоставляют дополнительную информацию о клиенте, запросе или ресурсе. Параметры заголовка представлены в формате "Имя: Значение". Основные заголовки:
Host: Доменное имя сервера.User-Agent: Информация о клиенте (браузер, ОС).Accept: Типы носителей, которые клиент готов принять.Content-Type: Тип носителя содержимого тела запроса (для методов PUT, POST).Content-Length: Длина тела запроса в байтах.Authorization: Учетные данные для аутентификации.plaintext
Пустая строка (Empty Line): Разделяет заголовки запроса и тело запроса. Обязательна, даже если тело отсутствует.
Тело запроса (Request Body): Содержит данные, отправляемые на сервер, например, данные формы, JSON для POST/PUT запросов. Присутствует не для всех методов (например, отсутствует для GET).
json
Схематично структуру HTTP-запроса можно представить так:
| Компонент | Описание | Обязательность |
|---|---|---|
| Стартовая строка | Метод, путь ресурса, версия HTTP | Всегда |
| Заголовки запроса | Дополнительная информация о запросе/клиенте | Опционально |
| Пустая строка | Разделитель | Всегда |
| Тело запроса | Данные, отправляемые на сервер | Опционально |