Какие типы HTTP-запросов (методов) вы знаете?

«Какие типы HTTP-запросов (методов) вы знаете?» — вопрос из категории Сети, который задают на 24% собеседований PHP Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Основные методы HTTP, которые я регулярно использую при разработке API и веб-приложений:

  • GET: Запрос для получения данных с сервера. Идемпотентный и безопасный (не должен изменять состояние сервера). Используется для загрузки страниц, получения ресурсов из REST API.
  • POST: Отправка данных на сервер для создания нового ресурса или выполнения действия. Не идемпотентный. Типичное применение — отправка формы, создание пользователя.
  • PUT: Полное обновление существующего ресурса по указанному URI. Идемпотентный.
  • PATCH: Частичное обновление ресурса. Также идемпотентный, но обновляет только переданные поля.
  • DELETE: Удаление ресурса. Идемпотентный.
  • HEAD: Аналогичен GET, но сервер возвращает только заголовки ответа (без тела). Полезен для проверки наличия ресурса или его метаданных.
  • OPTIONS: Описание поддерживаемых методов для целевого ресурса (CORS).

Практический пример: В RESTful API для сущности Article я бы использовал:

GET    /api/articles       # Список статей
POST   /api/articles       # Создать статью
GET    /api/articles/{id}  # Получить статью
PUT    /api/articles/{id}  # Заменить статью целиком
PATCH  /api/articles/{id}  # Обновить часть статьи
DELETE /api/articles/{id}  # Удалить статью

Важно: При проектировании API нужно строго следовать семантике методов, особенно учитывать идемпотентность (GET, PUT, DELETE) для надежности сетевых взаимодействий.