← Назад к вопросам
Как принято передавать данные в 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.