HTTP HEADと全てのHTTPヘッダの表示(Net::HTTP)
ここでは、HTTP HEADメソッドを使う方法と、HTTPヘッダに記述してある内容を取得する方法を説明したいと思います。
サンプル
HTTPでは、HEADメソッド(HTTP的なメソッドであり、rubyのクラスメソッドではないので注意。以下、大文字で書くHEADはHTTPのプロトコルで定義されているメソッドを表します)を使うとHTTP status lineとHTTPヘッダだけを取得する事ができます。 このHEADメソッドを使うと、実際のコンテンツをインターネット経由でダウンロードせずに「Content-Length」フィールドを見てコンテンツのサイズを見たりできます。 それ以外にも、HTTP上で扱うアプリケーションによって色々な情報を取得することがあります。
以下のサンプルでは、まず最初にNet::HTTP.newを使ってHTTPオブジェクトを生成しています。 HTTPオブジェクト生成後に、headメソッドを使ってHEADレスポンスを取得しています。
#!/usr/bin/ruby
require 'net/http'
http = Net::HTTP.new('www.yahoo.co.jp')
response = http.head('/')
# レスポンスオブジェクトを表示
puts "response"
p response
puts "\n"
# コード部分(status lineに含まれる数値)を表示
puts "response.code"
p response.code
puts "\n"
# 各HTTPヘッダの名前と値を表示
response.each do |name,value|
puts name + " : " + value + "\n"
end