Какие основные HTTP-методы запросов ты знаешь и для чего они используются?

«Какие основные HTTP-методы запросов ты знаешь и для чего они используются?» — вопрос из категории HTTP и веб-протоколы, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

HTTP-методы (или "глаголы") определяют действие, которое клиент хочет выполнить с указанным ресурсом.

Основные методы (CRUD-операции):

Метод Идемпотентность* Безопасность** Назначение (Семантика) Пример использования
GET Да Да Получение данных ресурса. Не должен изменять состояние сервера. Загрузка страницы, получение данных пользователя через API.
POST Нет Нет Создание нового ресурса или запуск процесса. Тело запроса содержит данные для создания. Отправка формы, создание нового заказа.
PUT Да Нет Полное обновление ресурса. Если ресурса нет — может создавать его (зависит от реализации). Обновление профиля пользователя целиком.
PATCH Нет Нет Частичное обновление ресурса. Тело запроса содержит только изменяемые поля. Изменение одного поля (например, телефона) в профиле.
DELETE Да Нет Удаление указанного ресурса. Удаление статьи, пользователя.

Идемпотентность: Повторный идентичный запрос дает тот же результат, что и первый. *Безопасность: Метод не изменяет состояние сервера.

Другие важные методы:

  • HEAD — аналогичен GET, но сервер возвращает только заголовки ответа (без тела). Используется для проверки наличия ресурса или метаданных.
  • OPTIONS — описывает коммуникационные параметры (доступные методы) для целевого ресурса.
  • CONNECT — устанавливает туннель к серверу, идентифицированному целевым ресурсом (используется для SSL-прокси).

Практические примеры запросов к REST API:

GET /api/v1/users/123 HTTP/1.1
Host: example.com
POST /api/v1/users HTTP/1.1
Content-Type: application/json

{"name": "Alice", "email": "alice@example.com"}
PATCH /api/v1/users/123 HTTP/1.1
Content-Type: application/json

{"email": "new.alice@example.com"}