「Linuxコマンド - curl」の版間の差分
| 56行目: | 56行目: | ||
== curlコマンドのオプション == | == curlコマンドのオプション == | ||
<center> | |||
{| class="wikitable" | style="background-color:#fefefe;" | |||
|- | |||
! style="background-color:#66CCFF;" | オプション | |||
! style="background-color:#66CCFF;" | 説明 | |||
! style="background-color:#66CCFF;" | 実行例 | |||
|- | |||
| -A<br>--user-agent || UAを指定する。 || curl -A "Mozilla/5.0" https://example.com | |||
|- | |||
| -b<br>--cookie || クッキーを指定する。 || curl -b "name=value" https://example.com | |||
|- | |||
| -c<br>--cookie-jar || 取得したクッキーをファイルに保存する。 || curl -c cookies.txt https://example.com | |||
|- | |||
| -d<br>--data || POSTリクエストで送信するデータを指定する。 || curl -d "data=value" https://example.com | |||
|- | |||
| -D<br>--dump-header || レスポンスヘッダをファイルに保存する。 || curl -D headers.txt https://example.com | |||
|- | |||
| -F<br>--form || フォームデータを送信する。 || curl -F "file=@file.txt" https://example.com | |||
|- | |||
| -H<br>--header || カスタムヘッダを追加する。 || curl -H "Content-Type: application/json" https://example.com | |||
|- | |||
| -I<br>--head || ヘッダ情報のみを表示する。 || curl -I https://example.com | |||
|- | |||
| -k<br>--insecure || SSL / TLS認証を無視する。 || curl -k https://example.com | |||
|- | |||
| -L<br>--location || リダイレクト先に追従する。 || curl -L https://example.com | |||
|- | |||
| -o<br>--output || 取得したデータをファイルに保存する。 || curl -o output.html https://example.com | |||
|- | |||
| -O<br>--remote-name || URLのファイル名でファイルを保存する。 || curl -O https://example.com/file.zip | |||
|- | |||
| -s<br>--silent || サイレントモードを有効にする。 || curl -s https://example.com | |||
|- | |||
| -u<br>--user || ユーザ名とパスワードを指定して認証を行う。 || curl -u username:password https://example.com | |||
|- | |||
| -x<br>--proxy || プロキシサーバを指定する。 || curl -x http://proxy.example.com:8080 https://example.com | |||
|- | |||
| -X<br>--request || HTTPメソッド(GET, POST, PUT, DELETE) || | |||
POSTリクエスト送信<br>curl -X POST -d “data=value” https://example.com<br><br> | |||
PUTリクエストの送信<br>curl -X PUT -d “data=new_value” https://example.com/resource/1<br><br> | |||
DELETEリクエストの送信<br>curl -X DELETE https://example.com/resource/1<br> | |||
|} | |||
</center> | |||
<br><br> | <br><br> | ||
2023年12月31日 (日) 12:48時点における版
概要
curlコマンドは、Web上のリソースにアクセスして、データの送受信を行うツールである。
主に、以下に示すようなプロトコルをサポートしており、APIとの通信やWebページの取得、ファイルのアップロードおよびダウンロード等の操作が可能である。
- HTTP
- HTTPS
- FTP
- SFTP
curlコマンドは、以下に示すことが可能である。
- Webページの取得
- WebページのHTMLコンテンツを取得する。
- APIとの通信
- APIに対してHTTPリクエストを送信して、データの取得や更新、削除を行う。
- ファイルのアップロード / ダウンロード
- FTP、SFTP、HTTP、HTTPS等のプロトコルを利用して、ファイルのアップロードやダウンロードを行う。
- ヘッダ情報の確認
- WebサイトやAPIのHTTPヘッダー情報を確認する。
- 認証付きリクエスト
- Basic認証、Digest認証、トークン認証等の様々な認証方法に対応したリクエストを送信することができる。
- Webサイトの監視
- 定期的にWebサイトやAPIにリクエストを送信して、ステータスコードや応答時間を監視することができる。
- リダイレクトの追跡
- URLがリダイレクトされる場合、
curlコマンドはリダイレクト先のURLや遷移を調査することができる。
- URLがリダイレクトされる場合、
- プロキシを経由したリクエスト
- プロキシサーバを経由してリクエストを送信することができる。
使用方法
GETリクエストの実行
curl <オプション> <URL> # 例: DuckDuckGoのトップページのHTMLを取得する場合 curl https://duckduckgo.com
ヘッダ情報の表示
ヘッダ情報だけを表示する場合は、-Iオプションを付加する。
curl -I <URL>
POSTリクエストの送信
POSTリクエストを送信する場合は、以下に示す2つのオプションを付加する。
-Xオプション- : メソッドを指定(POST)
-dオプション- : データを指定
curl -X POST -d "key=<値>" <URL>
ファイルのアップロード
ファイルをアップロードする場合は、-Fオプションを付加する。
curl -F "file=@<ファイルのパス>" <URL>
ファイルのダウンロード
ファイルをダウンロードする場合は、-oオプションを付加して保存先ファイル名を指定する。
curl -o <出力先ファイル名> <URL>
curlコマンドのオプション
| オプション | 説明 | 実行例 |
|---|---|---|
| -A --user-agent |
UAを指定する。 | curl -A "Mozilla/5.0" https://example.com |
| -b --cookie |
クッキーを指定する。 | curl -b "name=value" https://example.com |
| -c --cookie-jar |
取得したクッキーをファイルに保存する。 | curl -c cookies.txt https://example.com |
| -d --data |
POSTリクエストで送信するデータを指定する。 | curl -d "data=value" https://example.com |
| -D --dump-header |
レスポンスヘッダをファイルに保存する。 | curl -D headers.txt https://example.com |
| -F --form |
フォームデータを送信する。 | curl -F "file=@file.txt" https://example.com |
| -H --header |
カスタムヘッダを追加する。 | curl -H "Content-Type: application/json" https://example.com |
| -I --head |
ヘッダ情報のみを表示する。 | curl -I https://example.com |
| -k --insecure |
SSL / TLS認証を無視する。 | curl -k https://example.com |
| -L --location |
リダイレクト先に追従する。 | curl -L https://example.com |
| -o --output |
取得したデータをファイルに保存する。 | curl -o output.html https://example.com |
| -O --remote-name |
URLのファイル名でファイルを保存する。 | curl -O https://example.com/file.zip |
| -s --silent |
サイレントモードを有効にする。 | curl -s https://example.com |
| -u --user |
ユーザ名とパスワードを指定して認証を行う。 | curl -u username:password https://example.com |
| -x --proxy |
プロキシサーバを指定する。 | curl -x http://proxy.example.com:8080 https://example.com |
| -X --request |
HTTPメソッド(GET, POST, PUT, DELETE) |
POSTリクエスト送信 |
セキュリティと認証
HTTPS
証明書のエラーを無視する場合、-kオプションを付加する。
これにより、curlコマンドはサーバから送信される証明書を検証せずに、以下のような動作をする。
- 証明書エラーが発生しない。
- サーバとの通信が脆弱になる
- サーバからのレスポンスが改竄されている可能性がある。
パスワード認証
ユーザ名とパスワードを指定して認証が必要なWebサイトにアクセスする場合は、-uオプションを付加する。
curl -u <ユーザ名>:<パスワード> <URL>
トークン認証
トークン認証を使用するAPIにアクセスする場合は、ヘッダにトークンを追加してリクエストを送信する。
curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" https://api.example.com/data
Basic認証 / Digest認証
Basic認証およびDigest認証を使用する場合は、-uオプションを付加してユーザ名とパスワードを指定する。
また、必要に応じて-basicオプションや-digestオプションを付加する。
# Basic認証 curl -u <ユーザ名>:<パスワード> --basic <URL> # Digest認証 curl -u <ユーザ名>:<パスワード> --digest <URL>
SSL / TLSの設定
SSL / TLSの設定をカスタマイズする場合は、以下に示すオプションを付加する。
-ciphersオプション- 使用する暗号スイートを指定する。
-cacertオプション- CA証明書のファイルを指定する。
-certオプション- クライアント証明書を指定する。
-keyオプション- クライアント証明書の秘密鍵を指定する。
プロキシの設定
プロキシ経由でリクエストを送信する場合は、-xオプションを付加してプロキシサーバのアドレスを指定する。
curl -x <プロキシサーバのURL> <URL>