Ответ
Параметры в GET-запросе передаются двумя основными способами:
1. Query Parameters (Параметры строки запроса)
Добавляются в URL после знака ? в формате ключ=значение. Несколько параметров разделяются амперсандом &.
Пример URL:
https://api.example.com/search?query=python&limit=10&page=2
2. HTTP Headers (Заголовки)
Используются для передачи служебной информации: аутентификации, типа контента, управления кэшем и т.д.
Пример заголовков:
GET /api/data HTTP/1.1
Host: example.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
X-API-Key: your-secret-key
Accept: application/json
Пример кода на Python с использованием библиотеки requests:
import requests
# 1. Параметры в URL (query string)
params = {"page": 2, "limit": 10}
response = requests.get("https://api.example.com/items", params=params)
# 2. Параметры в заголовках (headers)
headers = {
"Authorization": "Bearer token123",
"User-Agent": "MyTestClient/1.0"
}
response = requests.get("https://api.example.com/secure", headers=headers)
Ключевое отличие: Query parameters видны в URL и часто используются для фильтрации, сортировки и пагинации данных. Заголовки предназначены для метаданных запроса.
Ответ 18+ 🔞
Давай разжую, как там эти параметры в GET-запросе шляются, а то некоторые думают, что это какая-то ебейшая магия. Их, блядь, всего два основных способа, как водку пить — либо залпом, либо с закуской.
1. Query Parameters, они же Параметры строки запроса
Это когда ты лепишь всё прямо в адресную строку, после знака вопроса. Формат простой, как три копейки: ключ=значение. А если параметров больше одного, то склеиваешь их амперсандом &, вот и вся философия.
Смотри, как это выглядит вживую:
https://api.example.com/search?query=python&limit=10&page=2
Видишь? Тут мы ищем про питон, лимит — 10 штук, и просим вторую страницу. Всё на виду, как на ладони. Удобно для фильтров, сортировки и прочей хуйни, которую пользователь может сам в адресной строке поковырять.
2. HTTP Headers, они же Заголовки
А вот это уже для служебки, для метаданных. Сюда всякую важную дичь пихают: кто ты такой (авторизация), какой контент хочешь получить, как кэшировать и прочее. В URL этого не видно, оно прячется под капотом запроса.
Вот тебе пример, как это в заголовках плавает:
GET /api/data HTTP/1.1
Host: example.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
X-API-Key: your-secret-key
Accept: application/json
Смотри: Authorization — это типа пропуск, Accept — говорит "дай мне JSON, а не какую-то хуйню". Умно, да?
А теперь, чтобы совсем жизнь мёдом не казалась, вот тебе код на Python с библиотекой requests:
import requests
# 1. Параметры в URL (query string) — для фильтрации и пагинации
params = {"page": 2, "limit": 10}
response = requests.get("https://api.example.com/items", params=params)
# 2. Параметры в заголовках (headers) — для всего секретного и служебного
headers = {
"Authorization": "Bearer token123",
"User-Agent": "MyTestClient/1.0"
}
response = requests.get("https://api.example.com/secure", headers=headers)
Итог, блядь, простой: Query parameters — это то, что ты видишь в адресной строке браузера, для данных запроса. Заголовки — это то, что прячется, для управления самим запросом. Не перепутай, а то сервер тебе такого наговорит, что мало не покажется.