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

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

How to: (方法:)

require 'net/http'
require 'uri'

uri = URI('http://example.com/secrets')
req = Net::HTTP::Get.new(uri)
req.basic_auth 'user', 'password'

res = Net::HTTP.start(uri.hostname, uri.port) {|http|
  http.request(req)
}

puts res.body

実行結果の例:

Secret information here!

Deep Dive (掘り下げ)

ベーシック認証は、HTTP 1.0 で導入された古典的な認証方式です。リクエストのヘッダーに Authorization を追加し、ユーザー名とパスワードをBase64でエンコードした値を含めます。ただし、HTTPSを通じてのみ安全です。

代替案として、OAuth、トークンベース認証、APIキーなどの方法があります。これらは、二要素認証やスコープ限定アクセスなど、より進化したセキュリティを提供します。

Rubyでは net/http ライブラリを使うのが一般的ですが、HTTPartyFaraday などのライブラリも人気があります。これらは拡張性や使いやすさなど、独自の利点を持っています。

See Also (関連情報)