Программирование PC Утилита командной строки curl Thu, April 25 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Утилита командной строки curl Печать
Добавил(а) microsin   

Утилита curl может использоваться для протоколов DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET и TFTP. Также curl поддерживает сертификаты SSL, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxy (SOCKS4, SOCKS5, HTTP и HTTPS), HTTP/2, HTTP/3, cookies, user+password authentication (Basic, Plain, Digest, CRAM-MD5, SCRAM-SHA, NTLM, Negotiate, Kerberos, Bearer tokens и AWS Sigv4), file transfer resume, proxy tunneling, HSTS, Alt-Svc, unix domain sockets, HTTP compression (gzip, brotli and zstd), etags, parallel transfers, DNS-over-HTTPS и многое другое.

curl используется в командной строке или скриптах для передачи данных. Также curl используется в автомобилях, телевизорах, телевизионных приставках, роутерах, принтерах, audio-оборудовании, мобильных телефонах, планшетах, медиаплеерах и самых разнообразных программных продуктах. curl бесплатная и открытая программа (open source [2]).

Подсказку по командной строке можно получить командой curl --help или curl -h. Команда curl -M выводит полное руководство.

curl --help
Использование: curl [опции...] < url>
     --abstract-unix-socket < path> Подключиться через абстрактный Unix domain socket
     --alt-svc < file name> Разрешить alt-svc с этим файлом кэша
     --anyauth       Выбрать любой метод аутентификации
 -a, --append        Добавить к целевому файлу при выгрузке (uploading)
     --basic         Использовать базовую аутентификацию HTTP (HTTP Basic Authentication)
     --cacert < file> сертификат CA для проверки пира
     --capath < dir>  директория CA для проверки пира
 -E, --cert < certificate[:password]> Файл сертификата клиента и пароль
     --cert-status   Верификация стстуса сертификата сервера
     --cert-type < тип> Тип файла сертификата (DER/PEM/ENG)
     --ciphers < список чиперов> SSL cipher-ы для использования
     --compressed    Запрос сжатого ответа
     --compressed-ssh Разрешить сжатие SSH
 -K, --config < file> Прочитать конфигурацию из файла
     --connect-timeout < секунд> Максимальное разрешенное время для соединения
     --connect-to < HOST1:PORT1:HOST2:PORT2> Подключиться к хосту
 -C, --continue-at < offset> Смещение для возобновленного трансфера
 -b, --cookie < data|filename> Послать куки из строки/файла
 -c, --cookie-jar < filename> После операции записать куки в файл < filename>
     --create-dirs   Создать необходимую локальную иерархию каталогов
     --crlf          При выгрузке (upload) преобразовать LF в CRLF
     --crlfile < file> Получить список 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, '@' allowed
     --data-urlencode < data> HTTP POST data url encoded
     --delegation < LEVEL> Разрешение делегирования GSS-API
     --digest        Использовать HTTP-аутентификацию с подписью (HTTP Digest Authentication)
 -q, --disable       Запретить .curlrc
     --disable-eprt  Запретить использование EPRT или LPRT
     --disable-epsv  Запретить использование EPSV
     --disallow-username-in-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 < filename> Записать принятые заголовки в файл < filename>
     --egd-file < file> Путь EGD сокета для случайных данных
     --engine < name> Какую использовать систему шифрования
     --etag-save < file> Получить ETag из заголовка ответа и сохранить его в файл
     --etag-compare < file> Получить 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-логина, очистка после трансфера
 -G, --get           Поместить данные post в URL и использовать GET
 -g, --globoff       Запретить последовательности URL и диапазоны с использованием {} и []
     --happy-eyeballs-timeout-ms < миллисекунд> Как долго ждать IPv6 перед попыткой
                                                использовать IPv4
     --haproxy-protocol Послать заголовок протокола HAProxy PROXY v1
 -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
     --interface < name> Использоват указанный сетевой интерфейс (или адрес)
 -4, --ipv4          Разрешать имена в адреса IPv4
 -6, --ipv6          Разрешать имена в адреса IPv6
 -j, --junk-session-cookies Игнорировать куки сесии, прочитанные из файла
     --keepalive-time < секунд> Интервал для проб проверки активности
     --key < key>     Имя файла приватного ключа
     --key-type < тип> Тип файла приватного ключа (DER/PEM/ENG)
     --krb < level>   Разрешить Kerberos с уровнем безопасности < level>
     --libcurl < file> Дамп эквивалентного кода libcurl для этой командной строки
     --limit-rate < speed> Ограничить скорость трансфера до указанной величины
 -l, --list-only     Режим "только прослушивание"
     --local-port < num/range> Принудительное использование указанного диапазона
                               для локальных номеров портов
 -L, --location      Спедовать перенаправлениям (redirects)
     --location-trusted Наподобие --location, и посылает auth на другие хосты
     --login-options < options> Опции логина сервера
     --mail-auth < address> Адрес отправителя исходного сообщения электронной почты
     --mail-from < address> EMail из этого адреса
     --mail-rcpt < address> EMail на этот адрес
 -M, --manual        Показать полное руководство пользователя
     --max-filesize < байт> Максимальный размер файла для загрузки (download)
     --max-redirs < num> Максимальное количество разрешенных перенаправлений
 -m, --max-time < секунд> Максимальное разрешенное время для трансфера
     --metalink      Обрабатывать указанные URL-ы как файл metalink XML
     --negotiate     Использовать аутентификацию HTTP Negotiate (SPNEGO)
 -n, --netrc         Нужно прочитать .netrc для имени пользователя и пароля
     --netrc-file < filename> Указывает файл для netrc
     --netrc-optional Использоавть либо .netrc, либо URL
 -:, --next          Для следующего URL использовать свой набор опций
     --no-alpn       Запретить расширение ALPN TLS
 -N, --no-buffer     Запретить буферизацию выходного потока
     --no-keepalive  Запретить на соединении проверку активности TCP (TCP keepalive)
     --no-npn        Запретить расширение NPN TLS
     --no-progress-meter Не показывать индикатор прогресса
     --no-sessionid  Запретить повторное использование идентификатора сессии SSL
     --noproxy < no-proxy-list> Список хостов, для которых не использовать прокси
     --ntlm          Использовать аутентификацию HTTP NTLM
     --ntlm-wb       Использовать аутентификацию HTTP NTLM с winbind
     --oauth2-bearer < token> OAuth 2 Bearer Token
 -o, --output < file> Записать в файл вместо печати в stdout
 -Z, --parallel      Выполнять трансферы параллельно
     --parallel-immediate Не ждать мультиплексирования (вместе с --parallel)
     --parallel-max  Максимальная конкуренция для параллельных трансферов
     --pass < phrase> Фраза пароля для приватного ключа
     --path-as-is    Не выдавливать .. последовательности в пути URL
     --pinnedpubkey < хэши> FILE/HASHES публичного ключа для проверки пира
     --post301       Не переключаться на GET после следования 301
     --post302       Не переключаться на GET после следования 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 < file> сертификат CA проверки пира для прокси
     --proxy-capath < dir> директория CA проверки пира для прокси
     --proxy-cert < cert[:passwd]> Установить сертификат клиента для прокси
     --proxy-cert-type < тип> Тип сертификата клиента для HTTPS прокси
     --proxy-ciphers < список> SSL чиперы, используемые для прокси
     --proxy-crlfile < file> Установить список CRL для прокси
     --proxy-digest  Использовать аутентификацию с подписью на прокси
     --proxy-header < header/@file> Передать пользовательский заголовок (заголовки)
                                    для прокси
     --proxy-insecure Делать соединения HTTPS прокси без верификации прокси
     --proxy-key < key> Приватный ключ для HTTPS прокси
     --proxy-key-type < тип> Тип файла приватного ключа для прокси
     --proxy-negotiate Использовать аутентификацию HTTP Negotiate (SPNEGO) на прокси
     --proxy-ntlm    Использовать NTLM аутентификацию на прокси
     --proxy-pass < phrase> Фраза пароля приватного ключа для HTTPS прокси
     --proxy-pinnedpubkey < хэши> FILE/HASHES публичного ключа для верификации прокси
     --proxy-service-name < name> Имя сервиса прокси SPNEGO
     --proxy-ssl-allow-beast Разрешить ошибку безопасности взаимодействия
                             для прокси-сервера HTTPS
     --proxy-tls13-ciphers < список> TLS 1.3 наборы шифров для прокси (OpenSSL)
     --proxy-tlsauthtype < тип> Тип аутентификации TLS для прокси HTTPS
     --proxy-tlspassword < строка> 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>  Имя файла публичного ключа SSH
 -Q, --quote         Послать команду (команды) на сервер перед трансфером
     --random-file < file> Файл, откуда считываются случайные данные
 -r, --range < диапазон> Извлекать байты только в указанном диапазоне
     --raw           Использовать сырой (raw) HTTP; не декодировать трансфер
 -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 на указанных хосте и порту
     --socks4a < host[:port]> Прокси SOCKS4a на указанных хосте и порту
     --socks5 < host[:port]> Прокси SOCKS5 на указанных хосте и порту
     --socks5-basic  Разрешить аутентификацию по имени пользователя/паролю
                     для проксей 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 < speed> Остановить трансферы, медленнее чем указанная скорость
 -y, --speed-time < секунд> После этого времени сгенерировать 'speed-limit' abort
     --ssl           Попробовать SSL/TLS
     --ssl-allow-beast Разрешить недостатки безопасности для улучшения взаимодействия
     --ssl-no-revoke Отключить проверки отзыва сертификатов (Schannel)
     --ssl-reqd      Требовать SSL/TLS
 -2, --sslv2         Использовать SSLv2
 -3, --sslv3         Использовать SSLv3
     --stderr        Куда перенаправлять stderr
     --styled-output Разрешить стилизованный вывод для заголовков HTTP
     --suppress-connect-headers Подавить заголовки ответа соединения прокси
                                (CONNECT response header)
     --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 < тип> TLS authentication type
     --tlspassword   TLS password
     --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 < file>  Записать в файл трассировку отладки
     --trace-ascii < file> Наподобие --trace, но без hex-вывода
     --trace-time    Добавить метки времени в вывод trace/verbose
     --unix-socket < path> Соединиться через этот сокет Unix domain
 -T, --upload-file < file> Трансфер локального файла по месту назначения
     --url < url>    Работать с этим URL
 -B, --use-ascii     Использовать трансфер ASCII/text
 -u, --user < user:password> Имя пользователя и пароль сервера
 -A, --user-agent < name> Послать на сервер User-Agent < name>
 -v, --verbose       Более подробный вывод информации о функционировании
 -V, --version       Показать номер версии и выполнить выход
 -w, --write-out < format> Использовать формат вывода после завершения
     --xattr         Сохранить metadata в расширенных атрибутах файла

[Ссылки]

1. curl command line tool and library for transferring data with URLs site:curl.se.
2. curl / curl site:github.com.

 

Добавить комментарий


Защитный код
Обновить

Top of Page