wget で HEAD リクエストを投げるには
% wget --spider http://groundwalker.com/
とする。wget は サーバーレスポンスに Location ヘッダ が含まれる場合、Location ヘッダの値である URLへ HEAD リクエストをリダイレクトしてくれるのが楽だ。
上のリクエスト時のHTTPログ(from ngrep)
#### T xxx.xxx.xxx.xxx:52414 -> 219.94.128.92:80 [AP] HEAD / HTTP/1.0..User-Agent: Wget/1.10.2..Accept: */*..Host: groundwalker.com..Connection: Ke ep-Alive.... # T 219.94.128.92:80 -> xxx.xxx.xxx.xxx:52414 [AP] HTTP/1.1 302 Found..Date: Thu, 07 Feb 2008 03:00:55 GMT..Server: Apache/1.3.39 (Unix)..Locati on: http://groundwalker.com/blog/..Keep-Alive: timeout=3, max=7..Connection: Keep-Alive..Cont ent-Type: text/html; charset=iso-8859-1.... ######### T xxx.xxx.xxx.xxx:52415 -> 219.94.128.92:80 [AP] HEAD /blog/ HTTP/1.0..User-Agent: Wget/1.10.2..Accept: */*..Host: groundwalker.com..Connectio n: Keep-Alive.... ## T 219.94.128.92:80 -> xxx.xxx.xxx.xxx:52415 [AP] HTTP/1.1 200 OK..Date: Thu, 07 Feb 2008 03:00:55 GMT..Server: Apache/1.3.39 (Unix)..X-Powered -By: PHP/4.4.8..Keep-Alive: timeout=3, max=8..Connection: Keep-Alive..Content-Type: text/html
サーバーレスポンスに含まれる Last-Modified や Content-Length ヘッダによって、CGI などで動的に生成されたページかどうかの判別や、画像など静的なファイルのファイルサイズを取得するとき便利に使える。画像ファイルの場合だと、
% wget --spider http://groundwalker.com/blog/images/gwlogo.png
とすると
T xxx.xxx.xxx.xxx:52489 -> 219.94.128.92:80 [AP] HEAD /blog/images/gwlogo.png HTTP/1.0..User-Agent: Wget/1.10.2..Accept: */*..Host: groundwalk er.com..Connection: Keep-Alive.... # T 219.94.128.92:80 -> xxx.xxx.xxx.xxx:52489 [AP] HTTP/1.1 200 OK..Date: Thu, 07 Feb 2008 03:15:34 GMT..Server: Apache/1.3.39 (Unix)..Last-Modi fied: Wed, 22 Nov 2006 18:21:47 GMT..ETag: "2c9be5-486-4564953b"..Accept-Ranges: bytes..Conte nt-Length: 1158..Keep-Alive: timeout=3, max=8..Connection: Keep-Alive..Content-Type: image/pn g....
のように Content-Length が返ってくればサイズもわかる。なお wget -S ですべてのサーバーレスポンスヘッダが出力されるのは便利だ。