search
LoginSignup
1
Help us understand the problem. What are the problem?

posted at

curlコマンド備忘録 ※随時更新

1. はじめに

本記事では、Linuxの標準コマンドでもある『curl』コマンドのチートシート(と言う名の個人的備忘録)を記載します。

2. curlコマンドとは

2.1 curlコマンドの概要

curl は URL 指定でデータを受信(もしくは送信)するためのコマンドラインツールです。

Linuxでよく使用されるコマンドで、組み込みコマンドでもあります。
また、最近になって Windows 10 でも標準で組み込まれるようになりました。
最新版のWindows10であればコマンドプロンプトに「curl」と打ち込むことで利用できます。

2.2 基本書式

curlコマンドの基本書式は以下の通りとなります。

curl [オプション] [URL]

2.3 オプション一覧

curlコマンドで良く使用されるオプションを以下に記載します。

オプション 説明
-d, –data PARAM POSTリクエストとしてフォームを送信する
-i, –include 出力結果にHTTPヘッダーを含める
-s, –silent 進捗情報やエラーを出力しない
-u USER[:PASS] プロキシ認証等に用いるユーザー名USER, パスワードPASSを指定する
-x HOST[:PORT] プロキシサーバでのホストHOSTおよびポートPORTを指定
-I, –head ヘッダーを取得する
-v, –verbose 処理の細かい情報(進捗情報等..)を出力する
-L, –location リクエスト先にリダイレクト設定がある場合に追従する

3. 利用ケース

実務でよく使われるcurlコマンドの利用パターンを下記に記載します。

3.1 基本パターン

# オプション無し
$ curl https://<URL>

# URLをファイル名としてダウンロード
$ curl -O https://<URL>

# 実行結果をファイルへ出力
$ curl https://<URL> > <出力先ファイル>
$ curl -o <出力先ファイル> https://<URL>

# ファイル出力時の進捗状況を非表示にする(エラーも非表示)
$ curl -s -o 出力先PATH http://対象のURL

3.2 出力を指定する

# HTTPメソッドを指定
# HTTPメソッドについて → https://masa-enjoy.com/http-method-postput#toc6
$ curl -X PUT https://<URL>

# HTTPレスポンスヘッダーを取得
$ curl -I https://<URL>

# リクエストヘッダやレスポンスヘッダを表示する
# 「>」= リクエストヘッダ, 「<」= レスポンスヘッダ
$ curl -v https://<URL>
> GET /foo/ HTTP/1.1
~~略~~
< HTTP/1.1 302 Found

3.3 経路操作

# プロキシを経由する
$ curl -x <プロキシサーバ>:<ポート番号> --proxy-user <ユーザ名>:<パスワード> https://<URL>

# リダイレクトを有効にする
$ curl -L https://<URL>

# SSLのエラーを無視して処理を実行する
$ curl -k https://<URL>

3.4 認証操作

# basic認証
$ curl -user <USERID>:<PASSWORD> https://<URL>

# NTLM認証またはDigest認証
$ curl --anyauth --user <USERID>:<PASSWORD> https://<URL>

3.5 小技

# F5アタック
$ while :; do curl -s 'http://<URL>' >/dev/null; done

# 404や200などHTTPステータスコードだけを取得する
$ curl -Ss -w '%{http_code}\n' 'https://<URL>' -o /dev/null

# REST API を叩いて結果だけを確認する
$ curl -fsL https://<URL>

4. 参考

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1
Help us understand the problem. What are the problem?