← 返回首页
PATCH - HTTP | MDN

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-формах
Да
Может
Нет
Нет
Только если включена информация о дате последнего изменения
Нет

In this article

Синтаксис

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

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