HTTP* (HyperText Transfer Protocol) имеет несколько методов (иногда называемых "verbs" (глаголы)), которые определяют тип действия, которое клиент хочет выполнить на сервере. Вот основные HTTP-методы:
- GET:
Описание: Метод используется для запроса данных о сущности с сервера.
Идемпотентность*: Идемпотентен. Повторные GET-запросы к одной и той же сущности не изменяют ее состояние на сервере, а только возвращают данные.
Пример: Получение информации о пользователе с идентификатором 123. - POST:
Описание: Метод используется для создания новой сущности на сервере или для обработки данных, которые могут изменять состояние сервера.
Идемпотентность: Не идемпотентен. Повторные POST-запросы могут привести к созданию дублирующихся сущностей или другим изменениям состояния системы.
Пример: Создание нового пользователя в системе. - PUT:
Описание: Метод используется для замены существующей сущности на сервере или создания новой, если она не существует.
Идемпотентность: Идемпотентен. Повторный PUT-запрос на одну и ту же сущность приведет к тому же результату, что и первый запрос.
Пример: Обновление данных пользователя с идентификатором 123. - PATCH:
Описание: Метод используется для частичного обновления сущности на сервере.
Идемпотентность: Теоретически PATCH может быть идемпотентным, если повторный запрос изменяет сущность одинаково. Однако на практике это зависит от реализации на сервере, и PATCH часто считается неидемпотентным.
Пример: Частичное обновление информации пользователя с идентификатором 123. - DELETE:
Описание: Метод используется для удаления сущности с сервера.
Идемпотентность: Идемпотентен. Повторные DELETE-запросы к одной и той же сущности не изменят состояния системы, если сущность уже была удалена.
Пример: Удаление пользователя с идентификатором 123. - HEAD:
Описание: Аналогичен методу GET, но сервер возвращает только заголовки ответа, без тела.
Идемпотентность: Идемпотентен. Повторные HEAD-запросы не изменяют состояние сущности на сервере.
Пример: Проверка существования пользователя с идентификатором 123. - OPTIONS:
Описание: Метод возвращает информацию о поддерживаемых сервером HTTP-методах для конкретной сущности.
Идемпотентность: Идемпотентен. Повторные OPTIONS-запросы не изменяют состояние сущности на сервере.
Пример: Получение списка поддерживаемых методов для сущности "пользователь". - CONNECT:
Описание: Используется для установления туннеля для связи через прокси-сервер, обычно для HTTPS.
Идемпотентность: Неидемпотентен. Повторные CONNECT-запросы могут инициировать повторное установление соединения.
Пример: Установление туннеля для безопасного соединения через прокси. - TRACE:
Описание: Метод возвращает запрос, который был отправлен на сервер, чтобы клиент мог видеть, что действительно было отправлено и как это было преобразовано сервером.
Идемпотентность: Идемпотентен. Повторные TRACE-запросы не изменяют состояние сущности на сервере.
Пример: Диагностика запроса к серверу.
*HTTP (HyperText Transfer Protocol) — это протокол прикладного уровня, используемый для передачи гипертекста (веб-страниц) и других видов данных через Интернет. HTTP является основой для обмена данными в Всемирной паутине (World Wide Web) и широко используется для взаимодействия между клиентами (например, веб-браузерами) и серверами.
*Идемпотентность — это свойство операции, при котором повторное выполнение операции не приводит к изменению состояния системы. В контексте HTTP это означает, что при повторном отправлении запроса с одним и тем же методом состояние сущности на сервере не изменится (или изменится одинаково, как при первом запросе).
Не забудьте подписаться на канал, чтобы не пропустить полезную информацию: QA Helper - справочник тестировщика
Пишите в комментариях какой пункт было бы интересно рассмотреть более подробно.
Также будет интересно почитать: Вопросы которые задают на собеседовании тестировщикам