====== cURL - クライアントサイドURL転送ライブラリ ====== {{linux:meiji_seika_karl_cheese_flavor_001.jpg?250|明治製菓 カール チーズ味 001}}\\ ※日本では明治製菓の「おやつはカール」がイメージです❓😅💦💦💦 チーズ味最高です💕\\ **cURL** (カール) は、さまざまなプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供するプロジェクトである。cURL プロジェクトは libcurl と curl の2つの成果を生んでいる。\\ 本家: [[https://curl.haxx.se/|curl]]\\ ソースコード: [[https://github.com/curl/curl|curl/curl: A command line tool and library for transferring data with URL syntax, supporting HTTP, HTTPS, FTP, FTPS, GOPHER, TFTP, SCP, SFTP, SMB, TELNET, DICT, LDAP, LDAPS, MQTT, FILE, IMAP, SMTP, POP3, RTSP and RTMP. libcurl offers a myriad of powerful features]]\\ TODO: 詳細は必要に応じて追記していきます😅💦💦💦\\ ===== インストール ===== **Fedora** では既にインストール済みである🤔\\
$ sudo dnf install curl
メタデータの期限切れの最終確認: 0:51:27 時間前の 2023年03月26日 15時25分57秒 に実施しました。
パッケージ curl-7.85.0-7.fc37.x86_64 は既にインストールされています。
依存関係が解決しました。
行うべきことはありません。
完了しました!
動作確認🤤\\
$ curl -V
curl 7.85.0 (x86_64-redhat-linux-gnu) libcurl/7.85.0 OpenSSL/3.0.8 zlib/1.2.12 brotli/1.0.9 libidn2/2.3.4 libpsl/0.21.1 (+libidn2/2.3.3) libssh/0.10.4/openssl/zlib nghttp2/1.51.0
Release-Date: 2022-08-31
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp 
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets
===== コマンドライン オプション ===== ==== バージョン表示 [-V, --version] ====
$ curl --version
curl 7.85.0 (x86_64-redhat-linux-gnu) libcurl/7.85.0 OpenSSL/3.0.8 zlib/1.2.12 brotli/1.0.9 libidn2/2.3.4 libpsl/0.21.1 (+libidn2/2.3.3) libssh/0.10.4/openssl/zlib nghttp2/1.51.0
Release-Date: 2022-08-31
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp 
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets
or\\
$ curl --version
curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL
Release-Date: 2017-11-14, security patched: 2019-11-05
Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL
==== ヘルプ [-h, --help] ====
$ curl -h
Usage: curl [options...] -d, --data HTTP POST data -f, --fail Fail fast with no output on HTTP errors -h, --help Get help for commands -i, --include Include protocol response headers in the output -o, --output Write to file instead of stdout -O, --remote-name Write output to a file named as the remote file -s, --silent Silent mode -T, --upload-file Transfer local FILE to destination -u, --user Server user and password -A, --user-agent Send User-Agent to server -v, --verbose Make the operation more talkative -V, --version Show version number and quit This is not the full help, this menu is stripped into categories. Use "--help category" to get an overview of all categories. For all options use the manual or "--help all".
**curl** コマンドは機能があり過ぎです😅💦💦💦\\
$ curl -h all
Usage: curl [options...] -d, --data HTTP POST data -f, --fail Fail fast with no output on HTTP errors -h, --help Get help for commands -i, --include Include protocol response headers in the output -o, --output Write to file instead of stdout -O, --remote-name Write output to a file named as the remote file -s, --silent Silent mode -T, --upload-file Transfer local FILE to destination -u, --user Server user and password -A, --user-agent Send User-Agent to server -v, --verbose Make the operation more talkative -V, --version Show version number and quit This is not the full help, this menu is stripped into categories. Use "--help category" to get an overview of all categories. For all options use the manual or "--help all". [tomoyan@WICKED-BEAT development]$ curl -h all Usage: curl [options...] --abstract-unix-socket Connect via abstract Unix domain socket --alt-svc Enable alt-svc with this cache file --anyauth Pick any authentication method -a, --append Append to target file when uploading --aws-sigv4 Use AWS V4 signature authentication --basic Use HTTP Basic Authentication --cacert CA certificate to verify peer against --capath CA directory to verify peer against -E, --cert Client certificate file and password --cert-status Verify the status of the server cert via OCSP-staple --cert-type Certificate type (DER/PEM/ENG/P12) --ciphers SSL ciphers to use --compressed Request compressed response --compressed-ssh Enable SSH compression -K, --config Read config from a file --connect-timeout Maximum time allowed for connection --connect-to Connect to host -C, --continue-at Resumed transfer offset -b, --cookie Send cookies from string/file -c, --cookie-jar Write cookies to after operation --create-dirs Create necessary local directory hierarchy --create-file-mode File mode for created files --crlf Convert LF to CRLF in upload --crlfile Use this CRL list --curves (EC) TLS key exchange algorithm(s) to request -d, --data HTTP POST data --data-ascii HTTP POST ASCII data --data-binary HTTP POST binary data --data-raw HTTP POST data, '@' allowed --data-urlencode HTTP POST data URL encoded --delegation GSS-API delegation permission --digest Use HTTP Digest Authentication -q, --disable Disable .curlrc --disable-eprt Inhibit using EPRT or LPRT --disable-epsv Inhibit using EPSV --disallow-username-in-url Disallow username in URL --dns-interface Interface to use for DNS requests --dns-ipv4-addr
IPv4 address to use for DNS requests --dns-ipv6-addr
IPv6 address to use for DNS requests --dns-servers DNS server addrs to use --doh-cert-status Verify the status of the DoH server cert via OCSP-staple --doh-insecure Allow insecure DoH server connections --doh-url Resolve host names over DoH -D, --dump-header Write the received headers to --egd-file EGD socket path for random data --engine Crypto engine to use --etag-compare Pass an ETag from a file as a custom header --etag-save Parse ETag from a request and save it to a file --expect100-timeout How long to wait for 100-continue -f, --fail Fail fast with no output on HTTP errors --fail-early Fail on first transfer error, do not continue --fail-with-body Fail on HTTP errors but save the body --false-start Enable TLS False Start -F, --form Specify multipart MIME data --form-escape Escape multipart form field/file names using backslash --form-string Specify multipart MIME data --ftp-account Account data string --ftp-alternative-to-user String to replace USER [name] --ftp-create-dirs Create the remote dirs if not present --ftp-method Control CWD usage --ftp-pasv Use PASV/EPSV instead of PORT -P, --ftp-port
Use PORT instead of PASV --ftp-pret Send PRET before PASV --ftp-skip-pasv-ip Skip the IP address for PASV --ftp-ssl-ccc Send CCC after authenticating --ftp-ssl-ccc-mode Set CCC mode --ftp-ssl-control Require SSL/TLS for FTP login, clear for transfer -G, --get Put the post data in the URL and use GET -g, --globoff Disable URL sequences and ranges using {} and [] --happy-eyeballs-timeout-ms Time for IPv6 before trying IPv4 --haproxy-protocol Send HAProxy PROXY protocol v1 header -I, --head Show document info only -H, --header
Pass custom header(s) to server -h, --help Get help for commands --hostpubmd5 Acceptable MD5 hash of the host public key --hostpubsha256 Acceptable SHA256 hash of the host public key --hsts Enable HSTS with this cache file --http0.9 Allow HTTP 0.9 responses -0, --http1.0 Use HTTP 1.0 --http1.1 Use HTTP 1.1 --http2 Use HTTP 2 --http2-prior-knowledge Use HTTP 2 without HTTP/1.1 Upgrade --http3 Use HTTP v3 --ignore-content-length Ignore the size of the remote resource -i, --include Include protocol response headers in the output -k, --insecure Allow insecure server connections --interface Use network INTERFACE (or address) -4, --ipv4 Resolve names to IPv4 addresses -6, --ipv6 Resolve names to IPv6 addresses --json HTTP POST JSON -j, --junk-session-cookies Ignore session cookies read from file --keepalive-time Interval time for keepalive probes --key Private key file name --key-type Private key file type (DER/PEM/ENG) --krb Enable Kerberos with security --libcurl Dump libcurl equivalent code of this command line --limit-rate Limit transfer speed to RATE -l, --list-only List only mode --local-port Force use of RANGE for local port numbers -L, --location Follow redirects --location-trusted Like --location, and send auth to other hosts --login-options Server login options --mail-auth
Originator address of the original email --mail-from
Mail from this address --mail-rcpt
Mail to this address --mail-rcpt-allowfails Allow RCPT TO command to fail for some recipients -M, --manual Display the full manual --max-filesize Maximum file size to download --max-redirs Maximum number of redirects allowed -m, --max-time Maximum time allowed for transfer --metalink Process given URLs as metalink XML file --negotiate Use HTTP Negotiate (SPNEGO) authentication -n, --netrc Must read .netrc for user name and password --netrc-file Specify FILE for netrc --netrc-optional Use either .netrc or URL -:, --next Make next URL use its separate set of options --no-alpn Disable the ALPN TLS extension -N, --no-buffer Disable buffering of the output stream --no-clobber Do not overwrite files that already exist --no-keepalive Disable TCP keepalive on the connection --no-npn Disable the NPN TLS extension --no-progress-meter Do not show the progress meter --no-sessionid Disable SSL session-ID reusing --noproxy List of hosts which do not use proxy --ntlm Use HTTP NTLM authentication --ntlm-wb Use HTTP NTLM authentication with winbind --oauth2-bearer OAuth 2 Bearer Token -o, --output Write to file instead of stdout --output-dir Directory to save files in -Z, --parallel Perform transfers in parallel --parallel-immediate Do not wait for multiplexing (with --parallel) --parallel-max Maximum concurrency for parallel transfers --pass Pass phrase for the private key --path-as-is Do not squash .. sequences in URL path --pinnedpubkey FILE/HASHES Public key to verify peer against --post301 Do not switch to GET after following a 301 --post302 Do not switch to GET after following a 302 --post303 Do not switch to GET after following a 303 --preproxy [protocol://]host[:port] Use this proxy first -#, --progress-bar Display transfer progress as a bar --proto Enable/disable PROTOCOLS --proto-default Use PROTOCOL for any URL missing a scheme --proto-redir Enable/disable PROTOCOLS on redirect -x, --proxy [protocol://]host[:port] Use this proxy --proxy-anyauth Pick any proxy authentication method --proxy-basic Use Basic authentication on the proxy --proxy-cacert CA certificate to verify peer against for proxy --proxy-capath CA directory to verify peer against for proxy --proxy-cert Set client certificate for proxy --proxy-cert-type Client certificate type for HTTPS proxy --proxy-ciphers SSL ciphers to use for proxy --proxy-crlfile Set a CRL list for proxy --proxy-digest Use Digest authentication on the proxy --proxy-header
Pass custom header(s) to proxy --proxy-insecure Do HTTPS proxy connections without verifying the proxy --proxy-key Private key for HTTPS proxy --proxy-key-type Private key file type for proxy --proxy-negotiate Use HTTP Negotiate (SPNEGO) authentication on the proxy --proxy-ntlm Use NTLM authentication on the proxy --proxy-pass Pass phrase for the private key for HTTPS proxy --proxy-pinnedpubkey FILE/HASHES public key to verify proxy with --proxy-service-name SPNEGO proxy service name --proxy-ssl-allow-beast Allow security flaw for interop for HTTPS proxy --proxy-ssl-auto-client-cert Use auto client certificate for proxy (Schannel) --proxy-tls13-ciphers TLS 1.3 proxy cipher suites --proxy-tlsauthtype TLS authentication type for HTTPS proxy --proxy-tlspassword TLS password for HTTPS proxy --proxy-tlsuser TLS username for HTTPS proxy --proxy-tlsv1 Use TLSv1 for HTTPS proxy -U, --proxy-user Proxy user and password --proxy1.0 Use HTTP/1.0 proxy on given port -p, --proxytunnel Operate through an HTTP proxy tunnel (using CONNECT) --pubkey SSH Public key file name -Q, --quote Send command(s) to server before transfer --random-file File for reading random data from -r, --range Retrieve only the bytes within RANGE --rate Request rate for serial transfers --raw Do HTTP "raw"; no transfer decoding -e, --referer Referrer URL -J, --remote-header-name Use the header-provided filename -O, --remote-name Write output to a file named as the remote file --remote-name-all Use the remote file name for all URLs -R, --remote-time Set the remote file's time on the local output --remove-on-error Remove output file on errors -X, --request Specify request method to use --request-target Specify the target for this request --resolve <[+]host:port:addr[,addr]...> Resolve the host+port to this address --retry Retry request if transient problems occur --retry-all-errors Retry all errors (use with --retry) --retry-connrefused Retry on connection refused (use with --retry) --retry-delay Wait time between retries --retry-max-time Retry only within this period --sasl-authzid Identity for SASL PLAIN authentication --sasl-ir Enable initial response in SASL authentication --service-name SPNEGO service name -S, --show-error Show error even when -s is used -s, --silent Silent mode --socks4 SOCKS4 proxy on given host + port --socks4a SOCKS4a proxy on given host + port --socks5 SOCKS5 proxy on given host + port --socks5-basic Enable username/password auth for SOCKS5 proxies --socks5-gssapi Enable GSS-API auth for SOCKS5 proxies --socks5-gssapi-nec Compatibility with NEC SOCKS5 server --socks5-gssapi-service SOCKS5 proxy service name for GSS-API --socks5-hostname SOCKS5 proxy, pass host name to proxy -Y, --speed-limit Stop transfers slower than this -y, --speed-time Trigger 'speed-limit' abort after this time --ssl Try SSL/TLS --ssl-allow-beast Allow security flaw to improve interop --ssl-auto-client-cert Use auto client certificate (Schannel) --ssl-no-revoke Disable cert revocation checks (Schannel) --ssl-reqd Require SSL/TLS --ssl-revoke-best-effort Ignore missing/offline cert CRL dist points -2, --sslv2 Use SSLv2 -3, --sslv3 Use SSLv3 --stderr Where to redirect stderr --styled-output Enable styled output for HTTP headers --suppress-connect-headers Suppress proxy CONNECT response headers --tcp-fastopen Use TCP Fast Open --tcp-nodelay Use the TCP_NODELAY option -t, --telnet-option Set telnet option --tftp-blksize Set TFTP BLKSIZE option --tftp-no-options Do not send any TFTP options -z, --time-cond