Я читал много дискуссий по этому поводу, например, тот факт, что PUT является идемпотентным, а POST — нет, и т. д. Однако не зависит ли это в конечном счете от того, как реализован сервер? Разработчик всегда может построить внутренний сервер таким образом, чтобы запрос PUT не был идемпотентным и создавал несколько записей для нескольких запросов. Разработчик также может создать конечную точку для запроса PUT, чтобы он действовал как запрос DELETE и удалял запись в базе данных.
Итак, мой вопрос: учитывая, что мы не принимаем во внимание какой-либо код на стороне сервера, есть ли реальная разница между методами HTTP? Например, GET и POST имеют реальные различия в том, что вы не можете отправить тело с помощью запроса GET, но можете отправить тело с помощью запроса POST. Кроме того, насколько я понимаю, запросы GET обычно кэшируются по умолчанию в большинстве браузеров.
Являются ли методы HTTP-запроса чем-то большим, чем просто логическая структура (семантика), чтобы разработчики могли «ожидать» определенного поведения в зависимости от типа отправляемого нами HTTP-запроса?