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

Что такое http?

1.3 Junior🔥 221 комментариев
#Веб-тестирование#Клиент-серверная архитектура

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

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

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

HTTP: Основы для QA Engineer

HTTP (HyperText Transfer Protocol) — это основной протокол для передачи данных в интернете. Для QA инженера понимание HTTP критически важно при тестировании веб-приложений и API.

Что такое HTTP?

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

Основные характеристики HTTP

Без сохранения состояния (Stateless)

  • Каждый запрос независим
  • Сервер не сохраняет информацию о предыдущих запросах
  • Для отслеживания состояния используются cookies, session tokens, JWT

Текстовый протокол

  • Запрос и ответ передаются в виде текста
  • Легко отлаживать и анализировать
  • Читаемый формат для человека

Клиент-серверная архитектура

  • Клиент инициирует запрос
  • Сервер обрабатывает и отправляет ответ
  • Клиент не может инициировать подключение сам без запроса

HTTP методы (HTTP Verbs)

GET — получение данных

  • Не изменяет данные на сервере
  • Параметры передаются в URL
  • Безопасный и идемпотентный метод
  • Пример: GET /api/users/123

POST — создание новых данных

  • Отправляет данные в теле запроса
  • Может изменять состояние на сервере
  • Не идемпотентный (каждый запрос может создать новый ресурс)
  • Пример: POST /api/users с данными пользователя

PUT — полное обновление ресурса

  • Заменяет весь ресурс новыми данными
  • Требует полное содержимое ресурса
  • Идемпотентный
  • Пример: PUT /api/users/123 с полными данными

PATCH — частичное обновление ресурса

  • Обновляет только переданные поля
  • Более эффективен чем PUT для частичных обновлений
  • Идемпотентный
  • Пример: PATCH /api/users/123 с некоторыми полями

DELETE — удаление ресурса

  • Удаляет ресурс на сервере
  • Идемпотентный
  • Пример: DELETE /api/users/123

HEAD — как GET, но без тела ответа

  • Проверка доступности ресурса
  • Получение заголовков без загрузки данных

OPTIONS — получение информации о доступных методах

  • Используется для CORS проверок
  • Информирует о поддерживаемых методах для ресурса

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

Request Line (строка запроса)

GET /api/users HTTP/1.1
  • Метод (GET, POST и т.д.)
  • Путь к ресурсу
  • Версия протокола (обычно HTTP/1.1 или HTTP/2)

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

Host: api.example.com
Content-Type: application/json
Authorization: Bearer token
User-Agent: Mozilla/5.0
  • Дополнительная информация о запросе
  • Content-Type: тип данных в теле
  • Authorization: учётные данные
  • User-Agent: информация о клиенте

Тело (Body) — опционально

{"name": "John", "email": "john@example.com"}
  • Отправляется с POST, PUT, PATCH
  • Обычно JSON, XML или Form data

Структура HTTP ответа

Status Line (строка состояния)

HTTP/1.1 200 OK
  • Версия протокола
  • Код состояния
  • Описание

Заголовки ответа

Content-Type: application/json
Content-Length: 256
Set-Cookie: session_id=abc123

Тело ответа

{"id": 123, "name": "John"}

HTTP Коды состояния (Status Codes)

2xx — Успех

  • 200 OK — запрос успешен
  • 201 Created — ресурс создан
  • 204 No Content — успешно, но нет данных в ответе

3xx — Перенаправление

  • 301 Moved Permanently — постоянный редирект
  • 302 Found — временный редирект
  • 304 Not Modified — кэш актуален

4xx — Ошибка клиента

  • 400 Bad Request — неправильный формат запроса
  • 401 Unauthorized — требуется аутентификация
  • 403 Forbidden — нет доступа
  • 404 Not Found — ресурс не найден
  • 429 Too Many Requests — превышен лимит запросов

5xx — Ошибка сервера

  • 500 Internal Server Error — ошибка на сервере
  • 502 Bad Gateway — шлюз недоступен
  • 503 Service Unavailable — сервис недоступен
  • 504 Gateway Timeout — timeout

HTTPS — Защищённый HTTP

HTTPS = HTTP + SSL/TLS шифрование

  • Все данные шифруются при передаче
  • Защита от перехвата данных
  • Аутентификация сервера через сертификаты
  • Обязателен для передачи конфиденциальной информации

Версии HTTP

HTTP/1.1

  • Долгое время стандарт
  • Keep-alive соединения (переиспользование)
  • Проблема с head-of-line blocking

HTTP/2

  • Мультиплексирование (несколько запросов в одном соединении)
  • Compression заголовков
  • Server push
  • Лучше производительность

HTTP/3 (QUIC)

  • Ещё более быстрый
  • UDP вместо TCP
  • Быстрое восстановление соединения

Практическое применение в QA

Тестирование API

  • Проверка корректных и некорректных HTTP методов
  • Валидация кодов состояния
  • Проверка заголовков и тела ответа

Тестирование веб-приложений

  • Анализ сетевых запросов в браузере (DevTools)
  • Проверка запросов при действиях пользователя
  • Отслеживание редиректов и cookies

Баг-анализ

  • Проверка status code при ошибках
  • Анализ заголовков и cookies
  • Проверка времени ответа и сетевых задержек

Инструменты для работы с HTTP

  • Postman — тестирование API
  • Insomnia — альтернатива Postman
  • cURL — командная строка для HTTP запросов
  • DevTools браузера — анализ запросов и ответов
  • Fiddler — прокси для отладки
  • Charles Proxy — мониторинг трафика

Понимание HTTP протокола позволяет QA инженеру более эффективно тестировать веб-приложения, находить проблемы с сетевыми запросами, и лучше взаимодействовать с разработчиками при анализе проблем.

Что такое http? | PrepBro