--- title: PATCH slug: Web/HTTP/Methods/PATCH tags: - HTTP - HTTP метод - Методы запроса - Справка translation_of: Web/HTTP/Methods/PATCH ---
{{HTTPSidebar}}

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

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

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

PATCH (как и PUT) может иметь побочные эффекты на другие ресурсы.

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

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

Запрос имеет тело Да
Успешный ответ имеет тело Да
{{Glossary("Safe", "Безопасный")}} Нет
{{Glossary("Idempotent", "Идемпотентный")}} Нет
{{Glossary("Cacheable", "Кешируемый")}} Нет
Допускается в HTML-формах Нет

Синтаксис

PATCH /file.txt HTTP/1.1

Пример

Запрос

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

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

Ответ

Успешный ответ указывается с помощью кода ответа {{HTTPStatus("204")}}, поскольку ответ в примере не содержит тела сообщения. А если бы содержал, то код был бы {{HTTPStatus("200")}}.

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

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

Спецификация Заголовок
{{RFC("5789", "PATCH")}} PATCH Method for HTTP

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