← Назад к вопросам

Из чего состоит структура HTTP-запроса

1.0 Junior🔥 241 комментариев
#REST API и микросервисы

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

# HTTP-запрос: структура и компоненты

HTTP-запрос — это сообщение, отправляемое клиентом (обычно браузером) на сервер для получения ресурса. Структура HTTP-запроса состоит из четырёх основных частей:

1. Стартовая строка (Request Line)

Первая строка HTTP-запроса содержит три элемента:

  • HTTP методу (GET, POST, PUT, DELETE, PATCH и т.д.)
  • URI ресурса (путь на сервере)
  • Версию протокола (HTTP/1.1, HTTP/2, HTTP/3)

Пример:

GET /api/users/123 HTTP/1.1

2. Заголовки (Headers)

Заголовки содержат метаинформацию о запросе в формате "ключ: значение". Они идут сразу после стартовой строки, каждый на новой строке. Обычные заголовки:

Host: example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: application/json
Content-Type: application/json
Authorization: Bearer token123
Content-Length: 256
Cookie: session_id=abc123

Важные заголовки:

  • Host — адрес сервера (обязателен в HTTP/1.1)
  • Content-Type — формат тела запроса
  • Content-Length — размер тела в байтах
  • Authorization — учётные данные для аутентификации
  • Accept — желаемые форматы ответа
  • User-Agent — информация о клиенте

3. Пустая строка (Blank Line)

После заголовков идёт пустая строка (CRLF\r\n), которая разделяет заголовки и тело запроса.

4. Тело запроса (Body)

Быва только в некоторых методах (POST, PUT, PATCH). Содержит отправляемые данные:

{
  "name": "Ivan",
  "email": "ivan@example.com",
  "age": 30
}

В методах GET, DELETE, HEAD тела обычно нет.

Пример полного HTTP-запроса

POST /api/users HTTP/1.1
Host: api.example.com
Content-Type: application/json
Content-Length: 47
Authorization: Bearer eyJhbGc...
Accept: application/json

{"name": "John", "email": "john@example.com"}

Различие между запросом и ответом

Ответ (Response) имеет похожую структуру, но вместо стартовой строки с методом идёт строка статуса с кодом ответа (200, 404, 500 и т.д.).

В контексте Java

В Java для работы с HTTP-запросами используют:

  • HttpURLConnection (встроенный API)
  • Apache HttpClient
  • OkHttp
  • Spring RestTemplate / WebClient

Эти библиотеки автоматически форматируют запрос согласно структуре HTTP, но понимание внутреннего формата критично для отладки и оптимизации.

Из чего состоит структура HTTP-запроса | PrepBro