Ответ
Технически — да, но это плохая практика для отправки данных. GET предназначен для получения ресурсов, а не для их создания или изменения.
Почему не следует использовать GET для отправки данных:
- Безопасность: Данные передаются в URL-строке (параметры запроса), которая видна в истории браузера, логах сервера и может быть закэширована прокси.
- Ограничения длины: Максимальная длина URL ограничена браузером и сервером (обычно 2048-8192 символа).
- Семантика HTTP: Согласно стандартам REST и HTTP, GET-запросы должны быть идемпотентными и безопасными (не менять состояние сервера).
Пример GET-запроса с данными в параметрах (НЕ РЕКОМЕНДУЕТСЯ):
// JavaScript: передача конфиденциальных данных в URL — небезопасно!
fetch('https://api.example.com/login?username=admin&password=secret123', {
method: 'GET', // АНТИПАТТЕРН
})
.then(response => response.json())
.then(data => console.log(data));
Правильная альтернатива — использовать POST (или PUT/PATCH):
// Отправка данных в теле запроса — безопасно и правильно
fetch('https://api.example.com/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username: 'admin', password: 'secret123' })
})
.then(response => response.json())
.then(data => console.log(data));
Вывод: Для отправки данных, особенно конфиденциальных или изменяющих состояние системы, всегда используйте методы POST, PUT или PATCH.