Ответ
Нет, использовать метод GET для удаления данных категорически не рекомендуется. Это нарушает семантику HTTP (RFC 7231), согласно которой GET должен быть идемпотентным и безопасным (safe), то есть не менять состояние сервера.
Почему это плохая практика:
- Нарушение стандартов: Для удаления ресурса существует специальный метод DELETE.
- Угрозы безопасности:
- GET-запросы кэшируются прокси и браузерами.
- Они остаются в истории браузера и логах сервера.
- Ссылки с действием "удалить" могут быть случайно открыты поисковым роботом или предзагружены браузером.
- Проблемы с RESTful-архитектурой: Такая реализация ломает принципы REST, усложняя понимание API.
Пример правильной и неправильной реализации:
// ✅ ПРАВИЛЬНО: Использование метода DELETE
DELETE /api/users/123 HTTP/1.1
Host: example.com
Authorization: Bearer <token>
// ❌ ОПАСНО И НЕПРАВИЛЬНО: Удаление через GET
GET /api/users/delete?id=123 HTTP/1.1
Host: example.com
Вывод: Всегда используйте семантически верные HTTP-методы: POST для создания, PUT/PATCH для обновления, DELETE для удаления.