В чем разница между видами запросов

«В чем разница между видами запросов» — вопрос из категории Архитектура, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

GET - получает данные с сервера. Безопасный, идемпотентный, данные в URL.
POST - отправляет данные на сервер. Небезопасный, неидемпотентный, данные в теле запроса.
PUT - обновляет ресурс целиком. Идемпотентный.
PATCH - частичное обновление ресурса. Неидемпотентный.
DELETE - удаляет ресурс.

Пример GET:

fetch('https://api.example.com/users?id=123')

Пример POST:

fetch('https://api.example.com/users', {
  method: 'POST',
  body: JSON.stringify({name: 'John'})
})

Главные различия: безопасность, идемпотентность, влияние на сервер и место передачи данных.