Какими способами можно передать параметры в HTTP GET-запросе?

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

Ответ

Параметры в 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 и часто используются для фильтрации, сортировки и пагинации данных. Заголовки предназначены для метаданных запроса.