Что такое HTTP-метод GET?

«Что такое HTTP-метод GET?» — вопрос из категории HTTP и веб-протоколы, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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-запросов:

  1. Корректность ответа: Статус-код (200 OK, 404 Not Found), заголовки, тело ответа (соответствие схеме JSON/XML).
  2. Обработка параметров: Эндпоинт должен корректно фильтровать, сортировать или ограничивать данные на основе query-параметров.
  3. Валидация входных данных: Проверка обработки некорректных, отсутствующих или вредоносных параметров (SQL-инъекции, XSS).
  4. Поведение при кэшировании: Проверка заголовков Cache-Control и ETag.
  5. Производительность: Время отклика при запросе больших объёмов данных.