Ответ
Нет, использовать метод 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 для удаления.
Ответ 18+ 🔞
Да ты посмотри, на что люди способны! Сижу тут, читаю, и глазам своим не верю. Кто-то, блядь, предлагает через GET данные удалять! Это ж надо такой, ёпта, извращенец быть, чтобы такую хуйню придумать!
Слушай сюда, я тебе сейчас популярно объясню, почему это — пиздец, а не решение.
Во-первых, есть такая штука — HTTP-протокол. И там, блядь, не просто так методы разные придумали. GET — он для того, чтобы получать данные. Он должен быть безопасным и идемпотентным. Это значит, что ты можешь хоть сто раз дернуть один и тот же GET — на сервере нихуя не изменится. А теперь представь: ты открыл ссылочку, а у тебя там пользователь удалился. Или поисковый робот Google ползает, индексирует, и по пути всё стирает. Ёперный театр! Это ж какой-то беспредел, а не архитектура!
Во-вторых, безопасность, блядь! GET-запросы везде остаются: в истории браузера, в логах сервера, их прокси кэшируют. Представь, что у тебя в адресной строке торчит example.com/delete-user?id=admin. Любой, кто увидит историю, сможет тебе нахуй всю базу пользователей посносить. Доверия к такому коду — ноль ебать.
Ну и в-третьих, это просто уродство. Есть же метод DELETE, специально созданный для удаления! Зачем выёбываться-то?
Смотри, как это выглядит на практике:
// ✅ Вот так надо, по-человечески. Чисто, понятно, семантично.
DELETE /api/users/123 HTTP/1.1
Host: example.com
Authorization: Bearer <token>
А теперь смотри на этот пиздец:
// ❌ А это — говнокод уровня "я только вчера PHP начал учить". Опасный и неправильный.
GET /api/users/delete?id=123 HTTP/1.1
Host: example.com
Чувствуешь разницу? В первом случае — взрослый, адекватный подход. Во втором — крик души школьника, который боится форм и POST-запросов.
Короче, вывод простой, как три копейки: не выёбывайся. Для создания — POST, для обновления — PUT/PATCH, а для удаления — DELETE. И будет тебе счастье, а не волнение ебать каждый раз, что какой-нибудь бот или кэширующий прокси тебе продакшн похерит. Всё, вопрос закрыт.