tdiary.ishinao.net の挙動が

ここ2週間くらいの間に変わってしまったんだけど

例えば、http://tdiary.ishinao.net/20060710.html#p01 のように # 付きの URL を http GET しようとすると、404 Not Found が返ってくるようになってしまいました。# 付きじゃない場合は、問題なく GET できるんだけど。

GET http://tdiary.ishinao.net/20060710.html#p01 HTTP/1.1
Accept: */*
User-Agent: httpRead/1.0 (written by H.Tsujimura)
Host: tdiary.ishinao.net
Connection: close
Cache-Control: no-cache

なぜか User-Agent: lwp-request/2.06 なツール(perl の GET)を使うと、# 付きのままでも問題なく GET できる(たぶん TE が効いてるんだろうな。deflate,gzip はあってもなくても GET できる/できないには関係ないことは確認した)。

GET http://tdiary.ishinao.net/20060710.html#p01 HTTP/1.1
TE: deflate,gzip;q=0.3
Connection: TE, close
Host: tdiary.ishinao.net
User-Agent: lwp-request/2.06

ちなみにInternet Explorer は # 以降を捨て去った URL で GET してから、# 以降を評価してる。

GET http://tdiary.ishinao.net/20060710.html HTTP/1.1
Accept: */*
Accept-Language: ja
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727)
Host: tdiary.ishinao.net
Connection: Keep-Alive
Pragma: no-cache

なので、lwp-request の真似をするか、IE の真似をするか。他にも解決法はあるかもしれないけど。
とりあえず、拙作の http エンジンは、IE の真似で行くことにした。