ネットワークのコマンド | |||
---|---|---|---|
GET メソッド
curl では、-X オプションでメソッドを指定可能です。
※デフォルトが GET なので「curl google.com」と 「curl google.com -XGET」は同じ
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> <TITLE>301 Moved</TITLE></HEAD><BODY> <H1>301 Moved</H1> The document has moved <A HREF="http://www.google.com/">here</A>. </BODY></HTML>
上記の HTTP レスポンスの本文をブラウザで表示すると次のようになります。


-I ステータス行/ヘッダーを表示
オプション -I は HTTP レスポンスのステータス行・ヘッダーを取得します。
HTTP/1.1 301 Moved Permanently Location: http://www.google.com/ Content-Type: text/html; charset=UTF-8 Date: Mon, 18 Jul 2022 08:39:03 GMT (省略)
-L リダイレクト
リダイレクトを自動で実行します。

(中略);</script> </body></html>
HTTP/1.1 301 Moved Permanently Location: http://www.google.com/ (中略) HTTP/1.1 200 OK
-v 詳細を表示
詳細 (リクエスト、レスポンスの全てを含む) を標準エラー出力に出力します。
主にリクエストの内容を確認したり、デバッグする場合に利用します。
* Trying 172.217.161.78:80... * Connected to google.com (172.217.161.78) port 80 (#0) > GET / HTTP/1.1 > Host: google.com (省略) > < HTTP/1.1 301 Moved Permanently < Location: http://www.google.com/
HTTP リクエストの開始行/ヘッダーだけ見たい場合は、以下のように標準出力を捨てます。
-O ファイルに保存
HTTP レスポンスの本文をファイルに保存します。
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> <TITLE>301 Moved</TITLE></HEAD><BODY> <H1>301 Moved</H1> The document has moved <A HREF="http://www.google.com/">here</A>. </BODY></HTML>
-s サイレントモード
エラーメッセージを表示しません。
curl: (6) Could not resolve host: googl
-u BASIC 認証
オプション -u は Basic 認証 (ユーザー名とパスワードで認証) をします。
動作の詳細
Basic 認証では、「ユーザー名:パスワード」を Base64 でエンコードした値を、Authorization リクエストヘッダに追加します。
dXNlcm5hbWU6cGFzc3dvcmQ=
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
-b cookie を送信
リクエストヘッダを確認し、cookie が送信できているか見てみます。
> GET / HTTP/1.1 > Host: example.com > User-Agent: curl/7.81.0 > Accept: */* > Cookie: key=value
ヘッダを見てのとおり、オプション -b は以下と同じ意味を持ちます。
-c cookie を保存
cookie.txt に cookie の内容を保存します。
-k TLS 証明書の検証をスキップ
開発中で自己証明書を無視するために使うことが多いです。
POST メソッド
-X メソッドの指定
-X でメソッドを指定します。
デフォルトでは GET メソッドを指定するので、今までは -X オプションをつけていませんでした。
-d フォームデータを送信
ユーザーが HTML フォームにデータを入力して、ボタンを押すのと同じです。

name 属性に対応する input 要素に、値を代入して送信する例
@ 送信データにファイルを指定
送信するデータにファイルを指定する場合は、「@」を利用
-H リクエストヘッダを追加 (json)
-H でリクエストヘッダを追加します。
よくある用途は、REST API で JSON 形式でデータを送信すると伝えることです。
curl example.com -XPOST -H "Content-Type: application/json" -d ' { "foo":"bar" }'
> POST / HTTP/1.1 > Host: example.com > Content-Type: application/json
関連記事
HTTP 関連 | |||
---|---|---|---|