curl はターミナルから URL にアクセスするコマンドです。ヘッダーだけ見る `-I`、ファイルに保存する `-o` と `-O`、API を叩く `-X` と `-d` の使い方を、ブラウザ上のターミナルで打ちながら確認できます。
最終更新: 2026-09-11
curl [オプション] URL
指定した URL にアクセスし、返ってきた本文を表示します。
$ curl https://example.com
<!DOCTYPE html>
<html>
<head>
<title>Example Domain</title>
</head>
<body>
<h1>Example Domain</h1>
<p>This domain is for use in illustrative examples in documents.</p>
<!-- This is a simulated response from WebTerm -->
</body>
</html>
返ってきた HTML がそのまま出ます。 このページのターミナルは外に通信せず、応答を組み立てて返しています(最後のコメント行がその印です)。 打ち方の練習と結果の読み方は、実機と同じように試せます。
本文が要らないときは -I です。
$ curl -I https://example.com
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Date: Mon, 07 Sep 2026 08:38:21 GMT
Server: WebTerm/1.0 (Simulated)
Content-Length: 250
1行目の 200 OK が結果です。
「サイトが生きているか」「リダイレクトされていないか」を見るには、これがいちばん速い方法です。
-o で名前を決めて保存します。
$ curl -o page.html https://example.com
$ ls
page.html README.md
$ head -3 page.html
<!DOCTYPE html>
<html>
<head>
保存中は画面に何も出ません。
URL の最後の名前をそのまま使いたいときは -O(大文字)です。
$ curl -O https://example.com/app.tar.gz
$ ls
app.tar.gz page.html README.md
-s(進捗を出さない)を付けると、JSON をそのまま読めます。
$ curl -s https://api.example.com/users
[
{
"id": 1,
"name": "alice",
"email": "alice@example.com"
},
{
"id": 2,
"name": "bob",
"email": "bob@example.com"
}
]
送るときは -X でメソッド、-d で本文を指定します。
ただし、この2つだけで JSON を送ると断る API も少なくありません。
$ curl -X POST -d '{"name":"ada"}' https://api.example.com/users
{
"error": "Content-Type must be application/json"
}
ヘッダーを付けないと、curl は本文をフォームの形式として送るからです。
-H 'Content-Type: application/json' で、JSON だと伝えます。
$ curl -X POST -H 'Content-Type: application/json' -d '{"name":"ada"}' https://api.example.com/users
{
"id": 3,
"name": "ada"
}
認証などのほかのヘッダーも -H です。
$ curl -H 'Authorization: Bearer TOKEN' https://api.example.com/me
{
"id": 1,
"name": "alice",
"email": "alice@example.com"
}
-H は必要なだけ並べられます。
curl は、アプリが応えているかを確かめるときに打つコマンドです。
| 場面 | 打ち方 |
|---|---|
| サイトが生きているか見る | curl -I https://example.com |
| API の応答を読む | curl -s https://api.example.com/users |
| データを送る | curl -X POST -d '...' -H 'Content-Type: application/json' URL |
| 認証付きで叩く | curl -H 'Authorization: Bearer TOKEN' URL |
| ファイルを落とす | curl -O https://example.com/app.tar.gz |
ping で経路を確かめ、curl でアプリの応答を確かめる。
この2段が、つながらないときの基本の切り分けです。
URL はクォートで囲むのが安全です。
? や & を含む URL をそのまま書くと、シェルが先に解釈してしまいます。
curl 'https://api.example.com/users?page=2&limit=10' のように囲んでください。
-o を付けると画面には出ません。
「何も起きない」と感じたら、ファイルに落ちていないか ls で確かめてください。
-X POST だけでは JSON になりません。
本文の形式はヘッダーで伝えます。
-H 'Content-Type: application/json' を忘れると、受け取る側が解釈できないことがあります。
秘密の値をそのまま打たないでください。
コマンド履歴に残ります。
トークンは環境変数に入れ、-H "Authorization: Bearer $TOKEN" の形で渡すのが安全です。
webterm.appこのサイト
ターミナル応用
特定場面で役立つコマンドを学ぶ
learn.webterm.app別のサイト
