Ответ
GET — это один из основных HTTP-методов, предназначенный для запроса данных с указанного ресурса (сервера). С точки зрения тестирования, это идемпотентный и безопасный метод (в теории), который не должен изменять состояние сервера.
Ключевые характеристики для тестировщика:
- Цель: Получение данных (страницы, JSON, изображения).
- Данные запроса: Параметры передаются в URL в виде query-строки (после знака
?). - Кэширование: GET-запросы могут кэшироваться браузерами и прокси-серверами.
- Ограничение длины: Длина URL ограничена (зависит от браузера и сервера), поэтому для больших объёмов данных GET не подходит.
- Видимость: Параметры видны в адресной строке браузера и логах, что небезопасно для конфиденциальных данных.
Пример запроса и его компоненты:
GET /api/v1/users?role=admin&limit=10 HTTP/1.1
Host: example.com
User-Agent: test-runner/1.0
/api/v1/users— путь к ресурсу (эндпоинт).?role=admin&limit=10— query-параметры.Host,User-Agent— HTTP-заголовки.
Что проверять в тестах для GET-запросов:
- Корректность ответа: Статус-код (200 OK, 404 Not Found), заголовки, тело ответа (соответствие схеме JSON/XML).
- Обработка параметров: Эндпоинт должен корректно фильтровать, сортировать или ограничивать данные на основе query-параметров.
- Валидация входных данных: Проверка обработки некорректных, отсутствующих или вредоносных параметров (SQL-инъекции, XSS).
- Поведение при кэшировании: Проверка заголовков
Cache-ControlиETag. - Производительность: Время отклика при запросе больших объёмов данных.