PATCH
Метод запроса HTTP PATCH
частично изменяет ресурс.
В какой-то степени PATCH
можно назвать аналогом концепта «обновить» (update) из CRUD (en-US) (но не стоит путать HTTP и CRUD (en-US) — это две разные вещи).
PATCH
может как быть идемпотентным, так и не быть, в отличие от PUT
, который всегда идемпотентен. Операция считается идемпотентной, если её многократное выполнение приводит к тому же результату, что и однократное выполнение. Например, если автоинкрементное поле является важной частью ресурса, то PUT
перезапишет его (т.к. он перезаписывает всё), но PATCH
может и не перезаписать.
PATCH
(как и PUT
) может иметь побочные эффекты на другие ресурсы.
Чтобы обозначить, что сервер поддерживает PATCH
, можно добавить этот метод в список заголовков ответа Allow
(en-US) или 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
[описание изменений]
Ответ
Спецификации
Спецификация | Заголовок |
---|---|
RFC 5789: PATCH | PATCH Method for HTTP |
Смотрите также
204
Allow
(en-US),Access-Control-Allow-Methods
Accept-Patch
– указывает изменяемые типы документов принимаемые сервером.