Утилита командной строки curl очень удобна для тестирования поведения веб-сервера и для автоматизации административных действий.
curl -h
Usage: curl [options...] < url>
--abstract-unix-socket < path> Подключиться через абстрактный Unix domain socket --alt-svc < имя файла> Разрешить alt-svc с этим файлом кэша --anyauth Взять любой метод аутентификации -a, --append Добавить к целевому файлу при выгрузке --basic Использовать HTTP Basic Authentication --cacert < file> CA сертификат для проверки пира --capath < dir> CA директория для проверки пира -E, --cert < certificate[:password]> Файл сертификата клиента и пароль --cert-status Проверка статуса сертификата сервера --cert-type < type> Формат файла сертификата (DER/PEM/ENG) --ciphers < list of ciphers> Шифровальшики SSL для использования --compressed Запрос сжатого ответа --compressed-ssh Разрешить сжатие SSH -K, --config < file> Прочитать конифигурацию из файла --connect-timeout < сек> Максимальное время, разрешенное для соединения (секунд) --connect-to < HOST1:PORT1:HOST2:PORT2> Подключиться к хосту -C, --continue-at < offset> Смещение для возобновления передачи -b, --cookie < data|имяфайла> Послать куки из строки/файла -c, --cookie-jar < имяфайла> Записать куки в < имяфайла> после завершения операции --create-dirs Создать необходимую иерархию локальной директории --crlf Преобразовать LF в CRLF при выгрузке --crlfile < файл> Получить список CRL в формате PEM из указанного файла -d, --data < data> HTTP POST data --data-ascii < data> HTTP POST ASCII data --data-binary < data> HTTP POST binary data --data-raw < data> HTTP POST data, разрешается использовать '@' --data-urlencode < data> HTTP POST data закодированные как url --delegation < LEVEL> разрешение делегирования GSS-API --digest Использовать HTTP Digest Authentication -q, --disable Запрет .curlrc --disable-eprt Запрет использования EPRT или LPRT --disable-epsv Запрет использования EPSV --disallow-username-in-url Не разрешать имя пользователя в url --dns-interface < interface> Интерфейс для использования запросов DNS --dns-ipv4-addr < address> адрес IPv4 для использования запросов DNS --dns-ipv6-addr < address> адрес IPv6 для использования запросов DNS --dns-servers < addresses> адреса серверов DNS для использования --doh-url < URL> Разрешение имен хоста через DOH -D, --dump-header < имяфайла> Запись принятых заголовков в файл --egd-file < файл> Путь EGD сокета для случайных данных --engine < name> Используемая подсистема шифрования --etag-save < файл> Получить ETag из заголовка ответа, и сохранение его в файл --etag-compare < файл> Получить ETag из файла и отправка запроса с условием --expect100-timeout < сек> Сколько ждать (в секундах) для 100-continue -f, --fail Использовать тихий отказ (без какого-либо вывода) при ошибках HTTP --fail-early Отказ на первой ошибке передачи, без продолжения --false-start Разрешить TLS False Start -F, --form < name=content> Указать multipart MIME data --form-string < name=string> Указать multipart MIME data --ftp-account < data> Строка данных учетной записи --ftp-alternative-to-user < command> Строка для замены USER [name] --ftp-create-dirs Создать удаленную директорию, если она не существует --ftp-method < method> Управление использованием CWD --ftp-pasv Использовать PASV/EPSV вместо PORT -P, --ftp-port < address> Использовать PORT вместо PASV --ftp-pret Отправка PRET перед PASV --ftp-skip-pasv-ip Пропуск IP-адреса для PASV --ftp-ssl-ccc Отправка CCC после аутентификации --ftp-ssl-ccc-mode < active/passive> Установить режим CCC --ftp-ssl-control Требовать SSL/TLS для логина FTP, clear для передачи -G, --get Поместить post данные в URL, и использовать GET -g, --globoff Запрет последовательностей URL и диапазонов с использованием {} и [] --happy-eyeballs-timeout-ms < мс> Сколько ждать в миллисекундах для IPv6 пере попыткой перейти на IPv4 --haproxy-protocol Отправить заголовок v1 протокола HAProxy PROXY -I, --head Показать только информацию документа -H, --header < header/@file> Передать на сервер пользовательский заголовок (заголовки) -h, --help Вывести этот текст подсказки --hostpubmd5 < md5> Допустимый хэш MD5 публичного ключа хоста --http0.9 Разрешить ответы HTTP 0.9 -0, --http1.0 Использовать HTTP 1.0 --http1.1 Использовать HTTP 1.1 --http2 Использовать HTTP 2 --http2-prior-knowledge Использовать HTTP 2 без HTTP/1.1 Upgrade --http3 Использовать HTTP v3 --ignore-content-length Игнорировать размер удаленного ресурса -i, --include Подключить в вывод заголовки ответа протокола -k, --insecure Разрешить небезопасные подключения к серверу при использовании SSL [2] --interface < name> Использовать указанный сетевой интерфейс (или его адрес) -4, --ipv4 Преобразовать имена в адреса IPv4 -6, --ipv6 Преобразовать имена в адреса IPv6 -j, --junk-session-cookies Игнорировать куки сессии, прочитанные из файла --keepalive-time < сек> Время интервала для попыток проверки keepalive --key < key> Имя файла приватного ключа --key-type < type> Формат файла приватного ключа (DER/PEM/ENG) --krb < level> Разрешить Kerberos с указанным уровнем безопасности --libcurl < файл> Вывести эквивалентный для этой строки команды дамп кода libcurl --limit-rate < скорость> Ограничить скорость передачи до указанной -l, --list-only Режим "только прослушивание" --local-port < num/range> Принудительное использование указанного диапазона для номеров локальных портов -L, --location Следовать перенаправлениям --location-trusted Наподобие --location, и отправка аутентификации на другие хосты --login-options < options> Опции логина сервера --mail-auth < address> Адрес отправителя исходного сообщения электронной почты --mail-from < address> Отправить email от имени этого адреса --mail-rcpt < address> Отправить email на этот адрес -M, --manual Показать полное руководство (== man curl) --max-filesize < bytes> Максимальный размер файла для загрузки --max-redirs < num> Максимальное количество разрешенных перенаправлений -m, --max-time < сек> Максимальное отведенное время для передачи (секунд) --metalink Обработать предоставленные URL как файл metalink XML --negotiate Использовать аутентификацию HTTP Negotiate (SPNEGO) -n, --netrc Нужно прочитать .netrc для username и password --netrc-file < имяфайла> Указать файл для netrc --netrc-optional Использовать либо .netrc, либо URL -:, --next Сделать следующий URL отдельным набором параметров --no-alpn Запретить расширение ALPN TLS -N, --no-buffer Запретить буферизацию выходного потока --no-keepalive Запретить TCP keepalive на соединении --no-npn Запретить расширение NPN TLS --no-progress-meter Не показывать полосу прогресса --no-sessionid Запретить повторное использование SSL session-ID --noproxy < no-proxy-list> Список хостов, которые не используют прокси --ntlm Использовать аутентификацию HTTP NTLM --ntlm-wb Использовать аутентификацию HTTP NTLM вместе с winbind --oauth2-bearer < token> OAuth 2 Bearer Token -o, --output < файл> Записать в файл вместо stdout -Z, --parallel Выполнять передачи параллельно --parallel-immediate Не ждать мультиплексирования (с --parallel) --parallel-max Максимальная конкурентность для параллельных передач --pass < phrase> Фраза пароля для приватного ключа --path-as-is Не разбивать последовательности .. в пути URL --pinnedpubkey < hashes> FILE/HASHES Публичный ключ для проверки пира --post301 Не переключаться на GET после кода статуса 301 --post302 Не переключаться на GET после кода статуса a 302 --post303 Не переключаться на GET после кода статуса 303 --preproxy [protocol://]host[:port] Использовать сначала прокси -#, --progress-bar Отображать выполнение процесса как полосу --proto < protocols> Разрешить/запретит ПРОТОКОЛы --proto-default < protocol> Использовать ПРОТОКОЛ для любого URL, где нет схемы --proto-redir < protocols> Разрешить/запретить ПРОТОКОЛы при перенаправлении -x, --proxy [protocol://]host[:port] Использовать этот прокси --proxy-anyauth Взять любой метод аутентификации прокси --proxy-basic Использовать базовую аутентификацию на прокси --proxy-cacert < файл> сертификат CA для проверки пира для прокси --proxy-capath < dir> директория CA для проверки пира для прокси --proxy-cert < cert[:passwd]> Установка сертификата клиента для прокси --proxy-cert-type < type> Тип клиентского сертификата для прокси HTTPS --proxy-ciphers < list> Шифровальшики SSL для использования с proxy --proxy-crlfile < файл> Установить список CRL для прокси --proxy-digest Использовать аутентификацию цифровой подписью для прокси --proxy-header < header/@file> Переадать пользовательский заголовок (заголовки) для прокси --proxy-insecure Выполнять соединения HTTPS прокси без верификации прокси --proxy-key < key> Приватный ключ для HTTPS прокси --proxy-key-type < type> Тип приватного файла ключа для прокси --proxy-negotiate Использовать аутентификацию HTTP Negotiate (SPNEGO) на прокси --proxy-ntlm Использовать аутентификацию NTLM на прокси --proxy-pass < phrase> Фраза пароля для приватного ключа HTTPS прокси --proxy-pinnedpubkey < hashes> FILE/HASHES публичный ключ для верификации прокси --proxy-service-name < name> Имя службы SPNEGO прокси --proxy-ssl-allow-beast Разрешить security flaw для взаимодействия с HTTPS прокси --proxy-tls13-ciphers < list> Решения шифрования TLS 1.3 для прокси (OpenSSL) --proxy-tlsauthtype < type> Тип аутентификации TLS для HTTPS прокси --proxy-tlspassword < string> пароль TLS для HTTPS прокси --proxy-tlsuser < name> имя пользователя TLS для HTTPS прокси --proxy-tlsv1 Использовать TLSv1 для HTTPS прокси -U, --proxy-user < user:password> Имя пользователя и пароль прокси --proxy1.0 < host[:port]> Использовать HTTP/1.0 прокси на указанном порту -p, --proxytunnel Работать через туннель HTTP прокси (используя CONNECT) --pubkey < key> Имя файла публичного ключа -Q, --quote Отправить на сервер команду (команды) перед передачей --random-file < файл> Файл для чтения оттуда случайных данных -r, --range < range> Извлекать байты только в ДИАПАЗОНЕ --raw Делать HTTP "raw"; без декодирования транзации -e, --referer < URL> URL ссылки -J, --remote-header-name Использовать имя файла, предоставленное в заголовке -O, --remote-name Записать вывод в файл, именованный как сетевой файл --remote-name-all Использовать сетевое имя файла для всех URL -R, --remote-time Установить время сетевого файла на локальный вывод -X, --request < command> Указать используемую команду запроса --request-target Указать цель для этого запроса --resolve < host:port:address[,address]...> Разрешать host+port на указанный адрес --retry < num> Повторить запрос указанное число раз в случае проблемы --retry-connrefused Попробовать соединиться повторно при отказе в соединении (вместе с --retry) --retry-delay < сек> Подождать указанное число секунд перед повторной попыткой --retry-max-time < сек> Делать повторы только в течение указанного периода в секундах --sasl-authzid < identity> Использовать этот идентификатор, чтобы он действовал как аутентификация SASL PLAIN --sasl-ir Разрешит начальный ответ в аутентификации SASL --service-name < name> Имя службы SPNEGO -S, --show-error Показать ошибку, даже когда использовалась опция -s -s, --silent "Тихий" режим --socks4 < host[:port]> Прокси SOCKS4 на указанных host+port --socks4a < host[:port]> Прокси SOCKS4a на указанных host+port --socks5 < host[:port]> Прокси SOCKS5 на указанных host+port --socks5-basic Разрешить аутентификацию username/password для проксей SOCKS5 --socks5-gssapi Разрешить аутентификацию GSS-API для проксей SOCKS5 --socks5-gssapi-nec Совместимость с сервером NEC SOCKS5 --socks5-gssapi-service < name> Имя службы прокси SOCKS5 для GSS-API --socks5-hostname < host[:port]> Прокси SOCKS5, передача имя хоста для прокси -Y, --speed-limit < скорость> Остановить передачи, превышающие указанную скорость -y, --speed-time < сек> Сбросить ограничение скорости после указанного времени (в секундах) --ssl Попробовать SSL/TLS --ssl-allow-beast Позволить security flaw для улучшения взаимодействия --ssl-no-revoke Запретит проверки отозванных сертификатов (Schannel) --ssl-reqd Требовать SSL/TLS -2, --sslv2 Использовать SSLv2 -3, --sslv3 Использовать SSLv3 --stderr Куда перенаправлять stderr --styled-output Разрешит стилизованный вывод для заголовков HTTP --suppress-connect-headers Подавлять заголовки CONNECT прокси --tcp-fastopen Использовать TCP Fast Open --tcp-nodelay Использовать опцию TCP_NODELAY -t, --telnet-option < opt=val> Установить опцию telnet --tftp-blksize < value> Установить опцию TFTP BLKSIZE --tftp-no-options Не передавать никакие опции TFTP -z, --time-cond < time> Передача, основанная на времени --tls-max < VERSION> Установить максимальную разрешенную версию TLS --tls13-ciphers < список> Решения шифрования TLS 1.3 (OpenSSL) --tlsauthtype < type> Тип аутентификации TLS --tlspassword Пароль TLS --tlsuser < name> Имя пользователя TLS -1, --tlsv1 Использовать TLSv1.0 или более свежую версию --tlsv1.0 Использовать TLSv1.0 или более свежую версию --tlsv1.1 Использовать TLSv1.1 или более свежую версию --tlsv1.2 Использовать TLSv1.2 или более свежую версию --tlsv1.3 Использовать TLSv1.3 или более свежую версию --tr-encoding Запрос сжатого кодирования передачи --trace < файл> Записать трассировку отладки в ФАЙЛ --trace-ascii < файл> Наподобие --trace, но без HEX-вывода --trace-time Добавить метки времени для трассировки/verbose вывода --unix-socket < path> Соединяться через этот Unix domain socket -T, --upload-file < файл> Передать локальный ФАЙЛ в место назначения --url < url> URL, с которым надо работать -B, --use-ascii Использовать передачу ASCII/текст -u, --user < user:password> Имя и пароль сервера -A, --user-agent < name> Передать на сервер User-Agent < name> -v, --verbose Более подробный вывод о том, что происходит -V, --version Показать номер версии и выйти -w, --write-out < формат> Использовать ФОРМАТ вывода после завершения --xattr Сохранить метаданные в расширенных атрибутах файла
[Ссылки]
1. How do I POST JSON data with cURL? site:stackoverflow.com. 2. curl: проблема с самоподписанным сертификатом SSL. |