水無月ばけらのえび日記

bakera.jp > 水無月ばけらのえび日記 > 2003年のえび日記 > 2003年5月 > 2003年5月9日(金曜日)

2003年5月9日(金曜日)

パッチアンインストール

このごろ秀丸の起動に妙に時間がかかる事態が頻発しています。わずか数 KB の C# のソースを秀丸で開くのに、フリーズしたかのように 10秒くらい間が開いたりします。バッチファイルの起動にも同じように 10秒ほど待たされることがあります。以前はそんなことはなかったので、やはり MS03-013 (www.microsoft.com) が疑わしいと思われます。

このパッチは権限の昇格というセキュリティホールを塞いでいるのですが、良く考えてみると、このマシンは私しか使っていませんし、Administrator 権限のないユーザなんて存在しません (SYSTEM とか ASPNET とかはまあ別として)。Administrator がそれ以上の権限には昇格しようもないわけで……。

そんなわけで、さっくりとアンインストールしてみました。ちなみにアンインストールはコントロールパネルの「プログラムの追加と削除」から普通に行えます。アンインストール時、IE や .NET Framework が動かなくなるかも知れないようなことを言われましたが、無視して続行すると普通にアンインストールできました。

再起動して片っ端からファイルを開きまくってみましたが、明らかにさくさく立ち上がるようになりました。IE も普通に起動し、特に問題ない模様。アンインストールして正解だったようです。

関連する話題: Microsoft / Windows / Windows XP / セキュリティ

301 を喰らい続けるロボット

実はちょっと前まで、この辺りのページを見たとき「なんか知らないけどスタイルシートが無効になってるっぽい」「サイト内のリンクがリンク切れになっている」という現象がしばしば発生していたことと思います。これは要するに hatomaru.dll のバグなんですが、「末尾に / をつけた URL をリクエストされると内部キャッシュが汚染される」という結構強烈なものでした。

ソースを見ると分かると思いますが、この辺の HTML では基本的に href属性などを相対URL で書いています。これは hatomaru.dll 内部で自動的に生成しているのですが、リクエストされた URL の末尾に / がくっついていると相対 URL の書き方が変わります。困ったことに /ebi と /ebi/ とでは同じ内部キャッシュファイルを共有しているため、/ebi/ に誰かがアクセスした後で /ebi を見ると、URL が全て /ebi/ から計算された相対 URL になっているわけです。

そんなわけで / の有無はどちらかに統一する必要があるのですが、短い方が良いので無しに統一することにしました。/ つきの URL がリクエストされた場合は、内部処理を行わないで 301 を発行して / のない URL にリダイレクトします。

……という変更を行ったのが今週頭くらいなのですが、いまだに / つきの URL が定期的にアクセスされています。それは明らかにロボットなのですが、何度 301 を喰らっても一向に学習する気配なし。RFC2616 では、301 を受け取ったクライアントはこんな風に動作するべしとされています。

Clients with link editing capabilities ought to automatically re-link references to the Request-URI to one or more of the new references returned by the server, where possible.

以上、RFC2616 10.3.2 301 Moved Permanently より

※SHOULD ではなく ought to という表現が使われているのは、RFC2119 で定義されている SHOULD を意味しないという主旨なのでしょうね。仕様として SHOULD と定める訳ではないけど当然そうすべきだよねとか、そんなニュアンスなのでしょう。

具体的に名前を挙げると、そのユーザエージェントは Hatena Antenna/0.4 です。できれば 301 応答を学習して、参照する URL を変えて欲しいところです。できないことはないと思うのですが。

関連する話題: Web / UA / http / altba.com / サーバ / hatomaru.dll

最近の日記

関わった本など