Ключевым термином для PUT для меня всегда является идемпотент . В то время как для POST вы всегда «добавляете другой» элемент в состояние системы, с PUT действие остается тем же, даже если выполняется несколько раз (поскольку вы обращаетесь к элементу).
Пример:
делает 100-кратный POST / album = вы получите 100 разных альбомов (но с одинаковым содержанием)
выполнение 100 раз PUT / album / 123 = в итоге вы получите один альбом с идентификатором 123 (с содержимым)