ヘッダ情報を取得するスクリプト
以下のように、telnet や nc でWebサーバに接続して、HEADメソッドを発行してヘッダ情報を取得できる。
$ telnet chibilog.name 80 Trying 122.21.243.156... Connected to chibilog.name. Escape character is '^]'. HEAD / HTTP/1.0 ←入力 HTTP/1.1 200 OK Date: Wed, 05 Mar 2008 02:29:39 GMT Server: Apache Vary: Accept-Encoding,User-Agent Connection: close Content-Type: text/html; charset=EUC-JP Connection closed by foreign host.
※ chibilog.name は自分で管理しているサイトです。
このヘッダ情報を取得する場面が多いと、意外と面倒臭くなってくるのでスクリプト化する。
以下は、Pythonで上記のようにヘッダ情報を取得するスクリプト。
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys, urllib2 try: host = "http://" + sys.argv[1] + "/" except IndexError, e: print "Error: %s\n" % e print "e.g. python " + __file__ + " chibilog.name" sys.exit(1) try: fd = urllib2.urlopen(host) except urllib2.URLError, e: print e sys.exit(2) print "\nRequest: %s\n" % fd.geturl() print "-" * 10 + "Header" + "-" * 10 for key, value in fd.info().items(): print "%s = %s" % (key, value)
例えば、上記を httpHEAD.py なんて名前で作成した場合は、以下のように引数にホスト名を指定して実行すればOK。
$ python httpHEAD.py chibilog.name Request: http://chibilog.name/ ----------Header---------- transfer-encoding = chunked vary = Accept-Encoding,User-Agent server = Apache connection = close date = Wed, 05 Mar 2008 02:45:30 GMT content-type = text/html; charset=EUC-JP