HTTPのHEADリクエストを送信する

ウェブページの最終更新日だけを知りたいのでHEADメソッドを送信する。

# Python 3.1

import http.client
import sys
import socket

conn = http.client.HTTPConnection('www.example.com')
try:
    conn.request('HEAD', '/')
    res = conn.getresponse()
except (http.client.HTTPException,
        socket.error) as err:
    print('エラー:', err, file=sys.stderr)
    sys.exit(1)
finally:
    conn.close()

print('ステータス・コード:', res.status, res.reason)
print('最終更新日:', res.getheader('Last-Modified', 'なし'))

HTTP以外の部分でエラーになるとsocket.errorが発生するのがちょっとなあ。

Python3からhttplibがhttp.clientになったわけだが、名前の長さが微妙で、別名にするか一部を切り取るか、あるいはそのままにするか迷うな。