はじめに
paizaラーニングでPHPをはじめ、WEB開発を独学中のアラフィフ主婦です。
↑の中で紹介されている
↑の記事を読んで疑問に思った箇所について調べた忘備録です。
そもそもcurlコマンドって何?
「コマンド(command)」とは、コンピューターの検索窓に「cmd」と打つと、立ち上がる黒い画面(コマンドラインツール)に、ユーザーがキーボードに決まった文字を打ってコンピュータやプログラムに与える命令です。
自分で考えた文字を打つのではなくて、すでにお決まりの命令文があるので、それを入力します。
curl はその命令文の1つで、ウェブ上のサーバーとデータのやり取りをするためのものです。
例えば、インターネット上のページやAPI(アプリケーションプログラミングインターフェース)から情報を取得したり、データを送信することができます。
よく使うシーン
- ウェブサービスのAPIにデータを送信したり、データを取得したいとき。
- ウェブページやファイルをダウンロードしたいとき。
- HTTPのリクエストやレスポンスの内容を確認してデバッグするとき。
基本的な使い方
curl [オプション] [URL]
ここで、URL はアクセスしたいウェブページやAPIのアドレスを指定します。
具体例
ウェブページの内容を取得 以下のコマンドで、指定されたURLの内容を取得できます。例えば、Googleのトップページを取得する場合:
コマンドとURLを入れてからEnterキーを押すと・・・
ずらずらとウェブページのHTMLソースコードが表示されます。
よく使うオプション
-o
[filename]:ファイルのダウンロード
ファイルのダウンロード -O
オプションを使うと、指定したURLからファイルをダウンロードできます。例えば、画像ファイルをダウンロードする場合:
curl -O https://example.com/image.jpg
このコマンドを実行すると、カレントディレクトリ(今いるフォルダ)に image.jpg が保存されます。
-I
[URL]:ヘッダー情報の取得
-I
オプションを使うと、ページのコンテンツではなくヘッダー情報だけを取得できます。これは、サーバーがどのような情報を返しているかを確認するために役立ちます。
curl -I https://www.example.com
実行すると、HTTPステータスやサーバーの種類、コンテンツタイプなどが表示されます。
-X POST
-d
[data][URL]:
POSTリクエストの送信 フォームやAPIにデータを送信したいときは、-X POST
と -d
オプションを使って、POSTリクエストを送ることができます。例えば、APIにデータを送る場合:
curl -X POST -d "name=John&age=30" https://example.com/api
このコマンドは、name=John と age=30 というデータを指定されたAPIに送信します。
-s
[URL]:
-s
オプションは、「サイレントモード(silent mode)」を意味します。このオプションを使うと、通常の進行状況(プログレスバー)やエラーメッセージが非表示になります。つまり、-s を使うことで、実行中の詳細な情報を出力せずに、必要な結果(例えば、リクエストしたデータ)だけを表示することができます。
例
通常、curl コマンドを使ってファイルをダウンロードすると、進行状況が表示されます。
curl https://example.com/file.zip
これを実行すると、以下のように進行状況が表示されます:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 150 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
しかし、-s オプションを付けて実行すると:
curl -s https://example.com/file.zip
この場合、進行状況の情報が表示されず、出力だけが得られます。例えば、ファイルをダウンロードしている場合は、進行状況を表示せずにダウンロードが進行します。
使うシーン
- スクリプトで curl を使用して自動化を行うときに、不要な進行状況のメッセージを抑えたいとき。
- ログを簡潔にしたいときや、出力を解析しやすくするために、必要な情報だけを取得したいとき。
- エラーメッセージも非表示にしたい場合。
-s
と -S
の併用
-s
オプションを使うと、エラーメッセージも抑制されるため、何が起こっているかわかりにくくなることがあります。そこで、エラーメッセージだけは表示したい場合には、-s
と -S
を併用します。
curl -s -S https://example.com/file.zip
この場合、進行状況は表示されませんが、何かエラーが起きたときにはエラーメッセージが表示されるようになります。
その他よく使うオプション
-
-L
:リダイレクトを自動的に追跡します。リダイレクトされるページの場合、リダイレクト先のURLに自動で移動してくれます。 -
-u
[username:password]:基本認証が必要なサイトに対して、ユーザー名とパスワードを指定してアクセスします。
まとめ
curl
は、シンプルなコマンドラインツールですが、HTTPリクエストやファイルのダウンロードなど、さまざまな用途で使える便利なツールです。