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

Какие знаешь составные части запроса HTTP на сервер?

1.6 Junior🔥 201 комментариев
#Веб-тестирование#Тестирование API

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

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

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

Структура HTTP запроса

HTTP запрос состоит из нескольких обязательных и опциональных компонентов. Понимание этой структуры критично для тестирования API и debugging проблем.

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

Описывает действие над ресурсом в формате: METHOD /path HTTP/VERSION

Примеры:

  • GET /api/v1/users HTTP/1.1
  • POST /api/v1/questions HTTP/2
  • PUT /api/v1/profiles/123 HTTP/1.1

Методы HTTP:

  • GET — получить данные (безопасный, идемпотентный)
  • POST — создать новый ресурс
  • PUT — полностью заменить ресурс
  • PATCH — частичное обновление
  • DELETE — удалить ресурс
  • HEAD — как GET, но без тела ответа
  • OPTIONS — получить список допустимых методов (CORS)

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

Метаинформация о запросе в формате Name: Value. Каждый заголовок на новой строке.

Стандартные заголовки:

  • Host: api.prepbro.ru — адрес целевого сервера (обязателен в HTTP/1.1)
  • User-Agent: Mozilla/5.0... — информация о клиенте
  • Content-Type: application/json — формат тела запроса (для POST, PATCH, PUT)
  • Content-Length: 256 — размер тела в байтах
  • Accept: application/json — желаемый формат ответа
  • Authorization: Bearer token123 — учётные данные
  • Cookie: session=abc123 — данные сессии
  • X-Custom-Header: value — пользовательские заголовки
  • Referer: https://example.com — откуда произошёл запрос
  • Accept-Encoding: gzip, deflate — поддерживаемые кодировки
  • Cache-Control: no-cache — инструкции кэширования

3. Пустая строка

Отделяет заголовки от тела запроса.

4. Тело (Body)

Данные, отправляемые серверу. Опционально для GET, HEAD, DELETE; обязательно для POST, PUT, PATCH.

Форматы:

  • application/json: {"name": "John", "age": 30}
  • application/x-www-form-urlencoded: name=John&age=30
  • multipart/form-data: для загрузки файлов
  • text/plain: простой текст
  • application/xml: XML данные

Практический пример

POST /api/v1/questions HTTP/1.1
Host: api.prepbro.ru
Content-Type: application/json
Content-Length: 45
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
User-Agent: Postman/10.0
Accept: application/json

{"title": "Новый вопрос", "profession": "QA"}

Query параметры

Передаются в URL через ? и &: GET /api/v1/questions?limit=10&offset=0&profession=qa HTTP/1.1

Важно для тестирования API

  • Проверяй все обязательные заголовки
  • Валидируй Content-Type и тело запроса
  • Тестируй граничные случаи (большое тело, отсутствие заголовков)
  • Используй curl, Postman или Insomnia для построения запросов
  • Логируй полные запросы для debugging

Кажется просто, но именно непонимание структуры приводит к ошибкам в автотестах и интеграции.

Какие знаешь составные части запроса HTTP на сервер? | PrepBro