Какие методы HTTP-запроса важны на практике и чем они отличаются?
DOM и браузер
Основные HTTP-методы — GET, POST, PUT, PATCH, DELETE — определяют действие над ресурсом. Они различаются назначением, идемпотентностью и безопасностью.
Методы
- GET — получить ресурс. Безопасен, идемпотентен, кешируется. Параметры в URL.
- POST — создать ресурс или выполнить операцию. Не идемпотентен. Данные в теле.
- PUT — полностью заменить ресурс. Идемпотентен (повтор даёт тот же результат).
- PATCH — частично обновить ресурс. Обычно не идемпотентен.
- DELETE — удалить ресурс. Идемпотентен.
- HEAD — как GET, но только заголовки без тела.
- OPTIONS — узнать доступные методы (используется в CORS preflight).
Идемпотентность и безопасность
- Безопасные (не меняют состояние): GET, HEAD, OPTIONS.
- Идемпотентные (повтор = один результат): GET, PUT, DELETE, HEAD.
- Неидемпотентные: POST, обычно PATCH.
GET /users/1 # читать
PUT /users/1 # заменить целиком
PATCH /users/1 # обновить часть
DELETE /users/1 # удалитьПрактика
Идемпотентность важна для повторов запросов (retry) — GET/PUT/DELETE безопасно повторять, POST может создать дубликат.
Коротко для собеседования
GET — читать (идемпотентен, кеш), POST — создавать (не идемпотентен), PUT — заменить целиком (идемпотентен), PATCH — обновить часть, DELETE — удалить (идемпотентен). Идемпотентность определяет, безопасно ли повторять запрос.