Каква е разликата между методите PUT и POST? Как се държат при повторно изпращане на същата заявка? Какво прави PATCH?
sobes.tech AI
Отговор от AI
Методите HTTP PUT и POST се различават по семантика и поведение:
-
PUT — идемпотентен метод, използва се за пълно обновяване на ресурс по указан URL. Повторното изпращане на същия PUT заявка няма да промени резултата, тъй като ресурсът ще бъде презаписан с едни и същи данни.
-
POST — неидемпотентен метод, обикновено се използва за създаване на нови ресурси или изпълнение на действия. Повторното изпращане на POST заявка може да доведе до дублиране или повторение на операцията.
-
PATCH — използва се за частично обновяване на ресурса, като се изпращат само променените полета. За разлика от PUT, който заменя целия ресурс, PATCH прилага промените към съществуващия обект.
Пример:
PUT /users/123
{
"name": "Иван",
"age": 30
}
PATCH /users/123
{
"age": 31
}
POST /users
{
"name": "Иван",
"age": 30
}
Повторното изпращане на PUT със същите данни няма да промени ресурса, повторното изпращане на POST ще създаде нов потребител, а повторното изпращане на PATCH ще актуализира възрастта отново.