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

«Как передать данные с помощью HTTP-метода GET?» — вопрос из категории HTTP и веб-протоколы, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Данные в 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.