Как передать данные с помощью HTTP-метода GET?

Ответ

Данные в GET-запросе передаются исключительно через строку запроса (query string) в URL.

Синтаксис: Параметры добавляются после знака ?, разделяются символом & в формате ключ=значение.

https://api.example.com/v1/users?role=admin&limit=10&sort=name

Особенности и ограничения:

  • Видимость: Все данные видны в адресной строке браузера, истории и логах сервера. Не подходит для конфиденциальной информации (паролей, токенов).
  • Длина: Ограничена максимальной длиной URL (обычно 2048-8192 символа, зависит от браузера и сервера).
  • Кэширование: GET-запросы кэшируются браузерами и промежуточными прокси.
  • Назначение: Строго для получения (read) данных, а не для их изменения (согласно семантике HTTP).

Пример с использованием JavaScript (Fetch API):

const params = new URLSearchParams({ userId: 12345, action: 'profile' });
const url = `https://api.example.com/data?${params}`;

fetch(url)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error));

Для операций, изменяющих данные (создание, обновление, удаление), используйте методы POST, PUT, PATCH, DELETE.

Ответ 18+ 🔞

Да ты посмотри на эту дичь, блядь! GET-запрос, сука, это как кричать на всю улицу, что у тебя в карманах лежит. Всё, что ты туда суёшь, пиздуй в URL строку, после этого знака вопроса, как будто объявление на заборе пишешь.

Вот смотри, как это выглядит, ёпта:

https://api.example.com/v1/users?role=admin&limit=10&sort=name

Видишь? role=admin&limit=10. Всё на виду, как будто ты на лбу маркером написал «я админ, дайте мне десяток пользователей». Любой, кто мимо проходит в истории браузера или логах сервера, всё это прочитает. Хуй с горы, если это публичные данные, но пароли, токены или другую конфиденциальную хуйню туда пихать — это просто самоубийство, блядь. Доверия к такому способу — ноль ебать.

И длина у этой строки — овердохуища ограниченная. Браузеры и сервера смотрят на эту простыню и говорят: «Ну нахуй, больше двух тысяч символов не пропустим». Так что если тебе нужно передать «Войну и мир», GET-запрос — не твой вариант, чувак.

А ещё эти запросы, блядь, кэшируются! Браузер или какой-нибудь прокси-сервер может запомнить ответ и в следующий раз, даже не спрашивая у основного сервера, тебе старую хуйню подсунуть. Волнение ебать, когда данные должны быть свежими, а тебе вчерашний суп приносят.

Главное правило, которое надо вбить себе в бошку: GET — это строго для получения данных, для чтения. Как в библиотеку пришёл — взял книжку, посмотрел и положил на место. Ничего не изменил. Это его семантика, его священное назначение. Если тебе нужно что-то создать, обновить или нахуй удалить — это уже методы POST, PUT, PATCH, DELETE. Не путай, а то сервер тебе такого пиздеца устроит...

Вот, например, как это на JavaScript'е с Fetch API выглядит:

const params = new URLSearchParams({ userId: 12345, action: 'profile' });
const url = `https://api.example.com/data?${params}`;

fetch(url)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error));

Видишь? Создаём параметры, лепим их к URL и просто запрашиваем данные. Всё. Никаких изменений на сервере. Чистое, блядь, чтение. Запомни это, и будет тебе счастье, а не внезапный пиздец в продакшене.