Ниже — сжатая таблица по наиболее популярным клиентским HTTP-библиотекам в Python. Фокус на синхрон/async, стандартность и ключевые фичи.
- ✅ — есть из коробки
- ❌ — нет/не заявлено
| Библиотека | Asyncio | Стандартная библиотека | HTTP/2 | Ведущие особенности |
|---|---|---|---|---|
| requests (сторонняя) | ❌ | ❌ | ❌ | Простота, «де‑факто» стандарт для синхронных запросов; сессии, cookies, редиректы; аутентификация; экосистема плагинов (например, requests-html). |
| httpx (сторонняя) | ✅ | ❌ | ✅ | Современный клиент: sync/async; HTTP/2, WebSocket; клиент/сервер; совместим с API requests; интеграция с pytest (через pytest-httpx). |
| aiohttp (сторонняя) | ✅ | ❌ | ✅ | Оптимизирован для конкурентных async‑нагрузок; может работать как HTTP‑сервер; поддержка WebSocket. |
| urllib.request (stdlib) | ❌ | ✅ | ❌ | Входит в Python; базовый синхронный клиент поверх http.client; ниже уровень удобства. |
| http.client (stdlib) | ❌ | ✅ | ❌ | Максимально низкоуровневый клиент; редко используется напрямую. |
| urllib3 (сторонняя) | ❌ | ❌ | ❌ | Управление пулом соединений, ретраи, прокси, TLS; используется как база в requests и крупных проектах (например, botocore). |
| httplib2 (сторонняя) | ❌ | ❌ | ❌ | Упор на кеширование и эффективность; поддержка ETag/кеша. |
# Создать и активировать виртуальное окружение
python3 -m venv .venv && source .venv/bin/activate
# Обновить pip и установить библиотеки для сравнения/тестов
python -m pip install -U pip
python -m pip install "httpx[http2]" aiohttp requests urllib3 httplib2 pytest-httpxКомментарии: все пакеты — пользовательские (кроме
urllib.requestиhttp.client, которые идут в составе стандартной библиотеки Python).