← Назад к вопросам

Как принято передавать данные в GET-запросах?

1.0 Junior🔥 121 комментариев
#Браузер и сетевые технологии

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Передача данных в GET-запросах

GET-запрос используется для получения данных с сервера. Данные передаются через URL, что имеет существенные различия с POST.

Query параметры в URL

Данные передаются в строке запроса (query string) после знака ?:

GET /search?q=javascript&sort=relevance&limit=10&page=1 HTTP/1.1
Host: api.example.com

Структура:

  • q=javascript — первый параметр
  • & — разделитель между параметрами
  • sort=relevance — второй параметр
  • limit=10 — третий параметр

Fetch API

// Простой вариант
const response = await fetch('https://api.example.com/users?page=1&limit=20');

// С использованием URLSearchParams для построения параметров
const params = new URLSearchParams();
params.append('page', '1');
params.append('limit', '20');
params.append('sort', 'name');
params.append('order', 'asc');

const url = `https://api.example.com/users?${params.toString()}`;
const response = await fetch(url);
const data = await response.json();

Axios

import axios from 'axios';

// Вариант 1: параметры в объекте
const response = await axios.get('https://api.example.com/users', {
  params: {
    page: 1,
    limit: 20,
    sort: 'name',
    order: 'asc',
    tags: ['javascript', 'react', 'nodejs']
  }
});

// Вариант 2: параметры в URL
const response = await axios.get(
  'https://api.example.com/users?page=1&limit=20'
);

jQuery

// jQuery.ajax автоматически кодирует параметры
$.ajax({
  url: 'https://api.example.com/users',
  type: 'GET',
  data: {
    page: 1,
    limit: 20,
    search: 'john'
  },
  success: function(data) {
    console.log(data);
  }
});

URL кодирование (Encoding)

Специальные символы должны быть закодированы:

const query = 'hello world & special chars: !@#';
const encoded = encodeURIComponent(query);
// Результат: hello%20world%20%26%20special%20chars%3A%20%21%40%23

const url = `https://api.example.com/search?q=${encoded}`;

Автоматическое кодирование:

// URLSearchParams автоматически кодирует
const params = new URLSearchParams({ query: 'hello world!' });
console.log(params.toString());

// Axios тоже кодирует автоматически

Ограничения GET-запросов

  • Длина URL ограничена (обычно 2048 символов)
  • Видимость данных — параметры видны в истории браузера и логах
  • Простые структуры — сложно передать вложенные объекты
  • Кэширование — браузер может кэшировать результаты

Рекомендации

  • Используйте GET для поиска, фильтрации, сортировки
  • Обязательно кодируйте специальные символы (делают библиотеки)
  • Группируйте параметры по смыслу для читаемости
  • Используйте библиотеки (axios, fetch с URLSearchParams) вместо ручного составления URL
  • Избегайте передачи чувствительных данных в GET
  • Документируйте возможные параметры в API документации

Правильная работа с GET-параметрами — это основа удобного и предсказуемого API.

Как принято передавать данные в GET-запросах? | PrepBro