> В чем разница HTTP методов GET, POST, PUT, DELETE и когда их использовать (Python)

Уровень: senior · Роль: backend · Язык: Python · Категория: Технические вопросы

Компании: ООО Диджитал Сектор Поддержка, GGSel, Sunlight

Стек: Python

> Пример ответа

GET - идемпотентный и безопасный метод для получения данных. Не должен изменять состояние сервера. Используется для чтения ресурсов (например, GET /users/1).
POST - неидемпотентный метод для создания нового ресурса или отправки данных на обработку. Применяется при регистрации, загрузке файлов, отправке форм (например, POST /users).
PUT - идемпотентный метод для полной замены ресурса по известному URL. Если ресурс отсутствует, может создать его. Используется для обновления всех полей (например, PUT /users/1).
DELETE - идемпотентный метод для удаления ресурса. Применяется, когда нужно убрать объект (например, DELETE /users/1).

Когда использовать:

  • GET - только чтение, кэширование, закладки.
  • POST - создание, действия с побочными эффектами (оплата, отправка письма).
  • PUT - полное обновление существующего ресурса (передача всех полей).
  • DELETE - удаление.

В Python (например, с Flask или FastAPI) эти методы явно указываются в декораторах маршрутов:

PYTHON
@app.get('/users/{id}')
@app.post('/users')
@app.put('/users/{id}')
@app.delete('/users/{id}')

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью