This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

PATCH

Метод запроса HTTP PATCH частично изменяет ресурс.

В какой-то степени PATCH можно назвать аналогом действия «обновить» из CRUD (однако не следует путать HTTP и CRUD — это две разные вещи).

Запрос PATCH является набором инструкций о том, как изменить ресурс. В отличие от PUT, который полностью заменяет ресурс.

PATCH может как быть идемпотентным, так и не быть, в отличие от PUT, который всегда идемпотентен. Операция считается идемпотентной, если её многократное выполнение приводит к тому же результату, что и однократное. Например, если автоинкрементное поле является важной частью ресурса, то PUT перезапишет его (т.к. он перезаписывает всё), но PATCH может и не перезаписать.

PATCH (как и POST) может иметь побочные эффекты.

Чтобы обозначить, что сервер поддерживает PATCH, можно добавить этот метод в список заголовков ответа Allow или Access-Control-Allow-Methods (для CORS).

Другим (неявным) индикатором, что метод PATCH разрешён, является наличие заголовка Accept-Patch, который описывает, какой формат изменения документа принимает сервер.

Запрос имеет тело Да
Успешный ответ имеет тело Может
Безопасный Нет
Идемпотентный Нет
Кешируемый Только если включена информация о дате последнего изменения
Допускается в HTML-формах Нет

Синтаксис

PATCH /file.txt HTTP/1.1

Пример

Запрос

http
PATCH /file.txt HTTP/1.1
Host: www.example.com
Content-Type: application/example
If-Match: "e0023aa4e"
Content-Length: 100

[описание изменений]

Ответ

Успешный ответ указывается с помощью любого кода ответа серии 2xx.

В следующем примере используется код ответа 204, поскольку ответ не содержит тела сообщения. Если требуется передать тело, то используется код 200.

HTTP/1.1 204 No Content
Content-Location: /file.txt
ETag: "e0023aa4f"

Спецификации

Specification
RFC 5789

Смотрите также