Sobes.tech
Senior

Каква е разликата между методите 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 ще актуализира възрастта отново.