← Назад к вопросам
Какие знаешь составные части запроса 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.1POST /api/v1/questions HTTP/2PUT /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=30multipart/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
Кажется просто, но именно непонимание структуры приводит к ошибкам в автотестах и интеграции.