Bash:
HTTPリクエストの送信
How to: (方法)
Bashを使って、HTTPリクエストを手軽に送るためには、curl
コマンドがよく使われます。以下、基本的な例を見てみましょう。
# GETリクエストでウェブページを取得
curl http://example.com
# POSTリクエストでデータを送信
curl -d "param1=value1¶m2=value2" -X POST http://example.com/resource
# ヘッダーを追加する
curl -H "Content-Type: application/json" -d '{"key1":"value1", "key2":"value2"}' http://example.com/resource
# レスポンスヘッダーを表示
curl -i http://example.com
各コマンドを実行すると、サーバーからのレスポンスがコンソールに表示されます。
Deep Dive (深掘り)
HTTPリクエストを送る機能は、1990年のWWWの発足以来、Webの基本です。BashからHTTPリクエストを送れるcurl
は、Daniel Stenberg によって1997年にリリースされました。wget
やライブラリを使った方法(HTTPie
やwget
)、より進んだスクリプトで使うためのツール(httpx
やbatsh
など)もありますが、シンプルさと普及度からcurl
が最も頻繁に使われます。
curl
は多機能で、HTTPだけでなく、FTPやSMTPなど他のプロトコルにも対応しています。リクエストのカスタマイズ、アップロードとダウンロードの管理、シンプルなREST APIのテストなど様々な用途に使われています。
HTTPSを介したセキュアなリクエスト送信には、-k
オプションや適切な CA 証明書を指定する方法があります。複雑な操作を必要とする場合、Bashスクリプト内にcurl
コマンドを組み込んで自動化することも可能です。
See Also (関連情報)
- cURL公式サイト: https://curl.se
- HTTPリクエストに関するWikipediaのページ: https://ja.wikipedia.org/wiki/HTTP
- Bashスクリプトについての詳細: https://www.gnu.org/software/bash/manual/
- HTTPie: https://httpie.io/
- HTTPクライアントとしてのwget: https://www.gnu.org/software/wget/