[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-rest-api-chto-takoe-idempotentnost-i-bezopasnost-http-metodov":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":16,"progress":17,"seo":18},1113,"chto-takoe-idempotentnost-i-bezopasnost-http-metodov",34,"rest-api","REST API","🌐","Что такое идемпотентность и безопасность HTTP-методов?","Безопасный метод (Safe method) — метод, который не изменяет состояние ресурса на сервере. Вызов безопасного метода не создаёт побочных эффектов. Безопасные методы: `GET`, `HEAD`, `OPTIONS`.\n\nИдемпотентный метод (Idempotent method) — метод, при котором многократный одинаковый запрос приводит к тому же результату, что и однократный. Повторный вызов не изменяет состояние сервера сверх того, что произвёл первый вызов. Идемпотентные методы: `GET`, `HEAD`, `OPTIONS`, `PUT`, `DELETE`.\n\n> **Аналогия из жизни:** кнопка лифта — нажатие на кнопку вызова лифта один раз или десять раз приведёт к одному результату (лифт приедет). Это идемпотентная операция. А вот добавление товара в корзину (POST) при каждом нажатии добавит новый экземпляр.\n\n### Примеры\n\n- `DELETE \u002Fapi\u002Fusers\u002F42` — первый вызов удалит пользователя, второй вернёт 404, но состояние сервера не изменится дополнительно. Метод идемпотентный.\n- `PUT \u002Fapi\u002Fusers\u002F42` с одним и тем же телом — каждый вызов приведёт к одному и тому же состоянию ресурса. Метод идемпотентный.\n- `POST \u002Fapi\u002Fusers` — каждый вызов может создать нового пользователя. Метод не идемпотентный.\n- `PATCH \u002Fapi\u002Fusers\u002F42` с `{\"age\": 31}` — идемпотентный, но `PATCH \u002Fapi\u002Fusers\u002F42` с `{\"age\": \"increment\"}` — не идемпотентный. Зависит от семантики операции.\n\n```\nБезопасные ⊂ Идемпотентные ⊂ Все методы\nGET, HEAD, OPTIONS ⊂ GET, HEAD, OPTIONS, PUT, DELETE ⊂ GET, HEAD, OPTIONS, PUT, DELETE, POST, PATCH\n```\n\nПонимание идемпотентности критично для построения надёжных систем: клиент может безопасно повторить идемпотентный запрос при сетевых ошибках, не опасаясь дублирования действий.\n\n> **На собеседовании:** ключевое — объяснить разницу между безопасностью и идемпотентностью. Все безопасные методы идемпотентны, но не наоборот (DELETE идемпотентен, но не безопасен). Частая ошибка — считать PATCH всегда идемпотентным.","","junior",[15],"rest",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":21,"keywords":22,"schemaAnswer":23,"featuredSnippetReady":24},"Что такое идемпотентность и безопасность HTTP-методов? — Gymterview","Безопасный метод (Safe method) — метод, который не изменяет состояние ресурса на сервере. Вызов безопасного метода не создаёт побочных эффектов. Безопасные мето","Безопасный метод (Safe method) — метод, который не изменяет состояние ресурса на сервере. Вызов безопасного метода не со",[15,13],"Безопасный метод (Safe method) — метод, который не изменяет состояние ресурса на сервере. Вызов безопасного метода не создаёт побочных эффектов. Безопасные методы: `GET`, `HEAD`, `OPTIONS`.",true]