PUT идемпотентен по семантике: повтор одинакового запроса должен иметь тот же целевой эффект. POST такой гарантии не даёт; повтор может создать ещё один ресурс или операцию.
Ещё какие-то отличия между PUT и POST есть (кроме назначения)?
PUT идемпотентен по семантике: повтор одинакового запроса должен иметь тот же целевой эффект. POST такой гарантии не даёт; повтор может создать ещё один ресурс или операцию.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
PUT идемпотентен по семантике: повтор одинакового запроса должен иметь тот же целевой эффект. POST такой гарантии не даёт; повтор может создать ещё один ресурс или операцию.
PUT обычно адресует известный клиенту URI и создаёт либо заменяет состояние ресурса по контракту. POST просит ресурс обработать представление по собственной логике; создание — лишь один вариант. Идемпотентность не требует одинакового HTTP-ответа на каждый повтор: первый PUT может создать ресурс, следующий — обновить существующий. POST можно защитить от повторного исполнения ключом идемпотентности, но это дополнительный контракт API, а не свойство метода само по себе.