Пока нет оценок.
Пожалуйста, подождите...

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

Далее как раз и поговорим о перечне таких методов.

OPTIONS

Это оригинальный запрос, позволяющий возвращать методы, которые являются разрешенными для каждой конкретной точки. Например, если у вас есть URL и его можно использовать для получения перечня внутренних ссылок, то методы, которые вернет данный запрос – это GET / POST.

Итак, рассмотрим простой пример. Возьмем Restful-BookerAPI для тестирования функционирования метода OPTIONS. Создаем новый GET-запрос, который может вызвать ссылку https://restful-booker.herokuapp.com/booking. После завершения прогона тестировщик сможет ознакомиться со всеми текущими бронированиями номеров в данном отеле.

Теперь можно сменить метод с GET на OPTIONS. После в теле ответа будут GET, POST и HEAD. Это значит, что для данной конкретной точки, доступны исключительно только 3 метода.

Во время тестирования API это наиболее эффективный способ определить, есть ли валидные конечные точки, о которых пользователь пока не знает. Дополнительно можно узнать данные касательно параметров тестирования скрытого функционала, а также зафиксировать потенциальные уязвимости веб-безопасности. Например, случается так, что у пользовательского API не может быть метода DELETE, а кто-то неумышленно его внедрил в ПО.

HEAD

Для наглядности примера можно использовать тот же URL, что и при выше описанном методе. Вначале просто сменим метод на GET.

Прогоняем запрос и получаем тело ответа с перечнем всех доступных бронирований. Анализируем заголовки ответов: Server, X-powered-by, Connection, Date и Via.

Затем можно сменить метод на HEAD и просто перезапустить запросы. Вероятней всего, пользователь получит полностью пустое тело запроса, но также могут вернуться и 8 заголовков.

С помощью данного метода можно тестировать заголовки GET-запросов, при этом не получая внутри ответа информацию (данные). Заголовки (titles) крайне важны, ведь именно они порой помогают устанавливать нужные правила безопасности. Если пользователь знает, какие именно заголовки должны возвращаться через API, то есть возможность прогнать данный метод по всем конечным точкам.

CONNECT

Этот метод может устанавливать специальный туннель к серверу, определенному URL-адресом. Кроме того, его порой используют для установления прокси-соединений.

Для наглядности примера использования метода CONNECT необходимо использовать cURL. Пользователь запросто можно проверить, установлен ли cURL на рабочей машине, просто введя curl-version в командной строке. Если ответом будет версия, значит все установлено.

Для функционирования метода CONNECT нужно ввести в командную строку вот такой запрос: curl-vCONNECThttp:///kristinjackvony.com.

Где-то на 9 строке можно будет обнаружить сообщение «301 Moved Permanently». Это означает, что ранее в url была внесена модификация, и будет происходить перенаправление.

Данный метод можно использовать, когда есть желание просмотреть, что конкретно происходит при установлении соединения с HTTP-ресурсом. Это действие может существенным образом облегчить тестирование безопасности, а также процедуру использования прокси.

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

Оставить комментарий