Open2

目的別curlコマンドメモ

ピン留めされたアイテム
chilitreatchilitreat

環境情報

  • macOS Monterey バージョン 12.3.1
  • curl バージョン 7.79.1
curl --version
curl 7.79.1 (x86_64-apple-darwin21.0) libcurl/7.79.1 (SecureTransport) LibreSSL/3.3.5 zlib/1.2.11 nghttp2/1.45.1
Release-Date: 2021-09-22
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp 
Features: alt-svc AsynchDNS GSS-API HSTS HTTP2 HTTPS-proxy IPv6 Kerberos Largefile libz MultiSSL NTLM NTLM_WB SPNEGO SSL UnixSockets

全てのオプションを見る

curl -h all
使用法:curl [オプション...] <url>
     --abstract-unix-socket <path> 抽象的なUnixドメインソケットで接続します。
     --alt-svc <ファイル名> このキャッシュファイルを使ってalt-svcを有効にします。
     --anyauth 任意の認証方式を選ぶ
 -a, --append アップロード時に対象ファイルに追加する。
     --aws-sigv4 <provider1[:provider2[:region[:service]]> AWS V4署名認証を利用する。
     --basic HTTP基本認証を使用します。
     --cacert <file> 相手を確認するためのCA証明書
     --capath <dir> ピアを検証するための CA ディレクトリ
 -E, --cert <certificate[:password]> クライアント証明書ファイルおよびパスワード。
     --cert-status OCSP-staple 経由でサーバ証明書の状態を確認する。
     --cert-type <type> 証明書タイプ (DER/PEM/ENG)
     --ciphers <暗号のリスト> 使用するSSL暗号化方式
     --compressed レスポンスを圧縮してリクエストする
     --compressed-ssh SSH の圧縮を有効にします。
 -K, --config <file> ファイルから設定を読み込む
     --connect-timeout <fractional秒> 接続に許可される最大時間
     --connect-to <HOST1:PORT1:HOST2:PORT2> ホストに接続する。
 -C, --continue-at <offset> 転送オフセットを再開する。
 -b, --cookie <data|filename> クッキーを文字列/ファイルから送信する。
 -c, --cookie-jar <filename> 操作後、<filename> にクッキーを書き込む。
     --create-dirs 必要なローカルディレクトリの階層を作成する。
     --create-file-mode <mode> 作成するファイルのモード(8進数)
     --crlf アップロード時にLFをCRLFに変換する。
     --crlfile <file> このCRLリストを使用する。
     --curves <algorithm list> (EC) 依頼するTLS鍵交換アルゴリズム。
 -d, --data <data> HTTP POSTデータ
     --data-ascii <data> HTTP POSTのASCIIデータ
     --data-binary <data> HTTP POST バイナリデータ
     --data-raw <data> HTTP POSTデータ、'@'は許可されます。
     --data-urlencode <data> HTTP POSTデータのURLをエンコードしたもの。
     --delegation <LEVEL> GSS-API のデリゲーション権限
     --digest HTTPダイジェスト認証を利用する
 -q, --disable .curlrc を無効にする。
     --disable-eprt EPRTやLPRTの利用を禁止する。
     --disable-epsv EPSVの利用を禁止する。
     --disallow-username-in-url ユーザー名をURLに含めることを禁止する。
     --dns-interface <インターフェイス> DNSリクエストに使用するインターフェイス
     --dns-ipv4-addr <address> DNSリクエストに使用するIPv4アドレス
     --dns-ipv6-addr <address> DNSリクエストに使用するIPv6アドレス
     --dns-servers <アドレス> 使用するDNSサーバーのアドレス
     --doh-cert-status OCSP-stapleでDoHサーバ証明書のステータスを確認する。
     --doh-insecure 安全でないDoHサーバーの接続を許可する。
     --doh-url <URL> DoHでホスト名を解決する。
 -D, --dump-header <filename> 受信したヘッダを<filename>に書き出す。
     --egd-file <file> ランダムデータ用EGDソケットパス
     --engine <名前> 使用する暗号エンジン
     --etag-compare <file> ファイルからETagをカスタムヘッダとして渡す。
     --etag-save <file> リクエストからETagを解析し、ファイルに保存する。
     --expect100-timeout <seconds> 100-continueまで待つ時間
 -f, --fail HTTPエラーのとき、黙って失敗する(全く出力しない)。
     -fail-early 最初の転送エラーで失敗、続行しない。
     --fail-with-body HTTPエラーの際に失敗するが、ボディは保存される
     --false-start TLSフォルススタートを有効にします。
 -F, --form <name=content> マルチパートのMIMEデータを指定する。
     --form-string <name=string> マルチパートのMIMEデータを指定する。
     --ftp-account <data> アカウントデータ文字列
     --ftp-alternative-to-user <command> USER [name]を置き換える文字列。
     --ftp-create-dirs リモートディレクトリが存在しない場合、それを作成する。
     --ftp-method <method> CWD の使用法を制御する。
     --ftp-pasv PORT の代わりに PASV/EPSV を使用する。
 -P, --ftp-port <address> PASV の代わりに PORT を使用。
     --ftp-pret PASV の前に PRET を送信する。
     --ftp-skip-pasv-ip PASV 用の IP アドレスをスキップする。
     --ftp-ssl-ccc 認証後に CCC を送信する。
     --ftp-ssl-ccc-mode <active/passive> CCC モードを設定します。
     --ftp-ssl-control FTP ログインに SSL/TLS を要求、転送にはクリアを要求。
 -G, --get URLに投稿データを入れてGETで利用する
 -g, --globoff URLの連続や範囲を{}や[]で囲むのを無効にする
     --happy-eyeballs-timeout-ms <ミリ秒> IPv4を試す前にIPv6を試せる時間
     --haproxy-protocol HAProxyのPROXYプロトコルv1ヘッダを送信する。
 -I, --head ドキュメント情報のみを表示する
 -H, --header <header/@file> サーバーにカスタムヘッダを渡す
 -h, --help <category> コマンドのヘルプを表示する。
     --hostpubmd5 <md5> ホスト公開鍵のMD5ハッシュを渡す。
     --hsts <ファイル名> このキャッシュファイルを使ってHSTSを有効にします。
     --http0.9 HTTP 0.9の応答を許可する。
 -0, --http1.0 HTTP 1.0を使用します。
     --http1.1 HTTP 1.1 を使用します。
     --http2 HTTP 2 を使用します。
     HTTP/1.1 のアップグレードを行わずに HTTP 2 を使用する --http2-prior-knowledge HTTP/1.1 のアップグレードを行わずに HTTP 2 を使用する
     --http3 HTTP v3 を使用します。
     --ignore-content-length リモートリソースのサイズを無視する。
 -i, --include プロトコルのレスポンスヘッダを出力に含める
 -k, --insecure SSL使用時に安全でないサーバ接続を許可する
     --interface <名前> ネットワーク INTERFACE (またはアドレス) を使用する
 -4, --ipv4 名前を IPv4 アドレスに解決します。
 -6, --ipv6 名前をIPv6アドレスに解決する
 -j, --junk-session-cookies ファイルから読み込んだセッションクッキーを無視します。
     --keepalive-time <seconds> キープアライブプローブのインターバル時間
     --key <key> 秘密鍵のファイル名
     --key-type <type> 秘密鍵のファイルタイプ (DER/PEM/ENG)
     --krb <level> セキュリティ<level>でKerberosを有効にする。
     --libcurl <file> このコマンドラインと同等のlibcurlのコードをダンプします。
     --limit-rate <speed> 転送速度をRATEに制限する。
 -l, --list-only リストのみ表示するモード
     --local-port <num/range> ローカルポート番号にRANGEを使用するよう強制する。
 -L, --location リダイレクトを追跡する
     --location-trusted -locationと同様に、他のホストに認証情報を送信する
     --login-options <options> サーバ・ログイン・オプション
     --mail-auth <address> オリジナルのメールの送信者アドレス
     --mail-from <address> このアドレスから送信されたメール
     --mail-rcpt <address> このアドレス宛のメール
     -mail-rcpt-allowfails RCPT TOコマンドを一部の受信者に失敗することを許可する。
 -M, --manual 完全なマニュアルを表示する
     --max-filesize <bytes> ダウンロードするファイルの最大サイズ
     --max-redirs <num> リダイレクトの最大許容数
 -m, --max-time <fractional seconds> 転送に許可される最大時間
     --metalink 与えられたURLをメタリンクXMLファイルとして処理する
     --negotiate HTTP Negotiate (SPNEGO) 認証を利用する。
 -n, --netrc ユーザ名とパスワードのために .netrc を読み込む必要があります。
     --netrc-file <ファイル名> netrc用のFILEを指定する。
     --netrc-optional .netrc または URL のどちらかを使用します。
 -:, --next 次のURLで別のオプションを使用するようにします。
     --no-alpn ALPN TLS 拡張を無効にします。
 -N, --no-buffer 出力ストリームのバッファリングを無効にします。
     --no-keepalive 接続の TCP キープアライブを無効にします。
     NPN TLS拡張を無効にする --no-npn
     --no-progress-meter プログレスメーターを表示しない
     --no-sessionid SSLセッションIDの再利用を無効にする
     --noproxy <no-proxy-list> プロキシを使用しないホストのリスト
     --ntlm HTTP NTLM 認証を利用する
     --ntlm-wb winbindを用いたHTTP NTLM認証を利用する。
     --oauth2-bearer <token> OAuth 2ベアラートークン
 -o, --output <file> 標準出力ではなく、ファイルに書き出す。
     --output-dir <dir> ファイルを保存するディレクトリ
 -Z, --parallel 並列に転送を行う
     --parallel-immediate 多重化を待たない(--parallelと同時)。
     --parallel-max <num> 並列転送の最大並列数
     --pass <phrase> 秘密鍵のパスフレーズ
     --path-as-is URLパスの...シーケンスを潰さない
     --pinnedpubkey <hashes> FILE/HASHES ピア検証用公開鍵
     --post301 301の後にGETに切り替えないでください。
     --post302 302の後にGETに切り替えない。
     --post303 303に従った後にGETに切り替えない。
     --preproxy [protocol://]host[:port] 最初にこのプロキシを使う。
 -#, --progress-bar 転送の進捗をバーで表示する
     --proto <プロトコル> プロトコルの有効化・無効化
     --proto-default <protocol> プロトコルのスキームがないURLにプロトコルを使用する。
     --proto-redir <protocols> リダイレクト時に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 <type> HTTPSプロキシのクライアント証明書の種類を指定します。
     --proxy-ciphers <list> プロキシに使用するSSL暗号を設定する。
     --proxy-crlfile <file> プロキシに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 <名前> SPNEGOプロキシサービス名
     --proxy-ssl-allow-beast HTTPSプロキシの相互運用のためにセキュリティ上の欠陥を許容する。
     --proxy-ssl-auto-client-cert プロキシ(Schannel)に自動クライアント証明書を使用します。
     --proxy-tls13-ciphers <ciphersuite list> TLS 1.3プロキシのサイファースイート
     --proxy-tlsauthtype <type> HTTPS プロキシの TLS 認証タイプ
     --proxy-tlspassword <string> HTTPS プロキシ用 TLS パスワード
     --proxy-tlsuser <name> HTTPS プロキシの TLS ユーザー名.
     --proxy-tlsv1 HTTPS プロキシに TLSv1 を使用する.
 -U, --proxy-user <ユーザ名:パスワード> プロキシユーザとパスワード
     --proxy1.0 <ホスト[:ポート]> 指定されたポートで HTTP/1.0 プロキシを使用します。
 -p, --proxytunnel HTTP プロキシトンネルを経由して動作します (CONNECT を使用します)
     --pubkey <key> SSH公開鍵ファイル名
 -Q, --quote <command> 転送前にサーバにコマンドを送信する。
     --random-file <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 <path> リクエストの対象を指定する。
     --resolve <[+]host:port:addr[,addr]...> host+portをこのアドレスに解決する。
     --retry <num> 一過性の問題が発生した場合、リクエストを再試行する。
     --retry-all-errors すべてのエラーを再試行する (--retry と一緒に使う)
     --retry-connrefused 接続が拒否されたときに再試行する (--retry と一緒に使う)
     --retry-delay <seconds> 再試行間の待ち時間
     --retry-max-time <seconds> この時間内に再試行する。
     --sasl-authzid <identity> SASL PLAIN認証のためのID。
     --sasl-ir SASL認証で初期応答を有効にする
     --service-name <name> SPNEGOサービス名
 -S, --show-error -sを使った場合でもエラーを表示する。
 -s, --silent サイレント・モード
     --socks4 <ホスト[:ポート]> 指定されたホストとポートでSOCKS4プロキシを動作させる
     --socks4a <ホスト[:ポート]> 指定されたホスト + ポートの SOCKS4a プロキシ
     --socks5 <ホスト[:ポート]> 指定されたホストとポート上のSOCKS5プロキシ
     --socks5-basic SOCKS5 プロキシでユーザ名/パスワードによる認証を有効にします。
     --socks5-gssapi SOCKS5 プロキシで GSS-API 認証を有効にします。
     --socks5-gssapi-nec NEC SOCKS5 サーバーとの互換性
     --socks5-gssapi-service <名前> GSS-API 用 SOCKS5 プロキシサービス名
     --socks5-hostname <host[:port]> SOCKS5 プロキシ、プロキシにホスト名を渡す。
 -Y, --speed-limit <speed> これより遅い転送を停止する。
 -y, --speed-time <seconds> この時間が経過したら、'speed-limit' abort をトリガーする。
     --ssl 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 <file> 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 <opt=val> Set telnet option
     --tftp-blksize <value> Set TFTP BLKSIZE option
     --tftp-no-options Do not send any TFTP options
 -z, --time-cond <time> Transfer based on a time condition
     --tls-max <VERSION> Set maximum allowed TLS version
     --tls13-ciphers <ciphersuite list> TLS 1.3 cipher suites to use
     --tlsauthtype <type> TLS authentication type
     --tlspassword <string> 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> デバッグトレースをFILEに書き込む
     --trace-ascii <file> -traceと同様だが、16進数の出力はない。
     --trace-time トレース/バーボース出力にタイムスタンプを追加します。
     --unix-socket <path> このUnixドメインソケットで接続する
 -T, --upload-file <file> ローカルFILEを転送先に転送します。
     --url <url> 動作させるURL
 -B, --use-ascii ASCII/テキスト転送を使用する
 -u, --user <user:password> サーバーユーザーとパスワード
 -A, --user-agent <name> ユーザーエージェント<name>をサーバに送る
 -v, --verbose 動作をより饒舌にする
 -V, --version バージョン番号を表示して終了する。
 -w, --write-out <format> 完了後に出力FORMATを使用する
     --xattr 拡張ファイル属性にメタデータを格納する。

www.DeepL.com/Translator(無料版)で翻訳しました。

chilitreatchilitreat

レスポンスヘッダーだけを取得したい(レスポンスボディはいらない)

--silent--head オプションを使う

curl --silent --head https://example.com
HTTP/2 200 
content-encoding: gzip
accept-ranges: bytes
age: 296508
cache-control: max-age=604800
content-type: text/html; charset=UTF-8
date: Fri, 06 Jan 2023 01:30:26 GMT
etag: "3147526947"
expires: Fri, 13 Jan 2023 01:30:26 GMT
last-modified: Thu, 17 Oct 2019 07:18:26 GMT
server: ECS (sab/56DE)
x-cache: HIT
content-length: 648