基本認証を使用したHTTPリクエストの送信

Bash:
基本認証を使用したHTTPリクエストの送信

How to: (やり方)

Bashで基本認証を伴うHTTPリクエストを送るのはcurlコマンドを使えば簡単です。

# ユーザー名'user'とパスワード'pass'を使ってGETリクエストを送る
curl -u user:pass http://example.com

# 上記のコマンドで生成されるサンプル出力
{"status":"success","message":"Authenticated"}

# POSTリクエストを送る場合(データを含む)
curl -u user:pass -d "param1=value1&param2=value2" -X POST http://example.com

# 上記のコマンドで生成されるサンプル出力
{"status":"success","message":"Data received"}

-u オプションは基本認証を行うためのユーザー名とパスワードを指定するのに使います。結果はサーバーのレスポンスに依存します。

Deep Dive (深掘り)

基本認証はHTTPプロトコルの標準的な方法で、RFC 7617で定義されています。ユーザー名とパスワードは:で連結され、Base64エンコードされて送信されます。

しかし、安全ではないネットワークではBase64エンコーディングは易しく解読されるため、HTTPSを通じた通信が推奨されます。

基本認証の代わりにOAuthなどのより安全な認証方法もあります。これらはトークンを使用して認証を行い、クレデンシャルを毎回送らなくても済むので安全です。curlコマンドはこれらの認証方法もサポートしています。

実装の詳細では、curl.netrcファイルを使用してクレデンシャル情報を管理し、より安全に保つことができます。.netrcファイルにはサーバーのアドレス、ユーザー名、パスワードを入力しておくことで、コマンドで毎回指定しなくても利用できます。

See Also (関連情報)