← Назад ко всем вопросам

В чем разница между POST, PUT и PATCH

1️⃣ Как кратко ответить

  • POST используется для создания нового ресурса на сервере. Каждый запрос создает новый ресурс.
  • PUT используется для замены существующего ресурса или создания нового, если он не существует. Запросы идемпотентны.
  • PATCH используется для частичного обновления существующего ресурса. Запросы также идемпотентны.

2️⃣ Подробное объяснение темы

HTTP-методы POST, PUT и PATCH используются для отправки данных на сервер, но они имеют разные цели и поведение.

POST

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

Пример использования POST:

POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/json
​
{
  "name": "John Doe",
  "email": "john.doe@example.com"
}
  • POST /api/users: Указывает, что мы хотим создать нового пользователя.
  • Content-Type: application/json: Указывает, что данные отправляются в формате JSON.
  • Тело запроса: Содержит данные нового пользователя.

PUT

PUT — это HTTP-метод, который используется для замены существующего ресурса или создания нового, если он не существует. В отличие от POST, PUT-запросы идемпотентны, что означает, что повторный запрос с теми же данными не изменит результат.

Пример использования PUT:

PUT /api/users/1 HTTP/1.1
Host: example.com
Content-Type: application/json
​
{
  "name": "Jane Doe",
  "email": "jane.doe@example.com"
}
  • PUT /api/users/1: Указывает, что мы хотим заменить данные пользователя с ID 1.
  • Тело запроса: Содержит новые данные для пользователя.

PATCH

PATCH — это HTTP-метод, который используется для частичного обновления существующего ресурса. В отличие от PUT, PATCH позволяет обновлять только те поля, которые изменились, без необходимости отправлять все данные ресурса.

Пример использования PATCH:

PATCH /api/users/1 HTTP/1.1
Host: example.com
Content-Type: application/json
​
{
  "email": "jane.newemail@example.com"
}
  • PATCH /api/users/1: Указывает, что мы хотим обновить данные пользователя с ID 1.
  • Тело запроса: Содержит только те поля, которые нужно обновить.

Идемпотентность

  • POST не является идемпотентным. Каждый запрос создает новый ресурс.
  • PUT является идемпотентным. Повторный запрос с теми же данными не изменит результат.
  • PATCH также является идемпотентным, если сервер реализует его корректно. Повторный запрос с теми же данными не изменит результат.

Применение

  • Используйте POST для создания новых ресурсов.
  • Используйте PUT для замены или создания ресурса, если он не существует.
  • Используйте PATCH для частичного обновления ресурса.

Эти методы помогают управлять ресурсами на сервере, обеспечивая гибкость и контроль над тем, как данные создаются и обновляются.

Тема: API и протоколы
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки