curl
curl (Client URL) — консольная утилита и библиотека (libcurl) для передачи данных по URL. Поддерживает HTTP, HTTPS, FTP, SFTP, SCP, SMB, LDAP и десятки других протоколов. Это не кроулер, но фундаментальный инструмент для скриптов выгрузки данных, работы с API, диагностики и автоматизации.
Сайт: curl.se
Зачем нужен архивисту
Curl — это «швейцарский нож HTTP». В отличие от Wget, он не умеет рекурсивно обходить сайт, но:
- Делает один запрос с точным контролем заголовков, метода, тела.
- Работает с любым API — JSON, OAuth, GraphQL, multipart.
- Скриптуется идеально — стабильный exit code, прогнозируемый вывод.
- Диагностирует — заголовки, TLS, редиректы, cookies, время.
- Пишет в WARC (экспериментально, через
--warcили отдельные обёртки).
Возможности
- 20+ протоколов: HTTP/1.1, HTTP/2, HTTP/3, HTTPS, FTP, SFTP, SMB, LDAP, MQTT, SMTP, IMAP, GOPHER, FILE и др.
- Любые HTTP-методы: GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS, CONNECT, TRACE.
- Заголовки и аутентификация: Basic, Digest, NTLM, Bearer, OAuth 2.0, mTLS, AWS SigV4.
- Cookies и сессии с персистентным хранилищем (
-c,-b). - Загрузка файлов: multipart, PUT, resume (
-C -). - Прокси: HTTP, SOCKS4/5, HTTPS через
HTTPS_PROXY. - Сжатие и кодирование: gzip, deflate, brotli, zstd.
- Прогресс-бар, вывод в файл, stdin/stdout pipes.
- Параллельные загрузки (
-Z,--parallel). - Конфигурация через
.curlrcи переменные окружения. - TLS 1.3, проверка сертификатов, клиентские сертификаты.
- Запись в WARC (через
--output+ post-processing или сторонние обёртки).