水無月ばけらのえび日記

bakera.jp > 水無月ばけらのえび日記 > W3CのDTDを取りに行きすぎるとBANされる

W3CのDTDを取りに行きすぎるとBANされる

2009年10月21日(水曜日)

W3CのDTDを取りに行きすぎるとBANされる

公開: 2009年10月22日21時40分頃

こんなお話が……「W3C Systeam's blog - W3C's Excessive DTD Traffic (www.w3.org)」。

Yet we receive a surprisingly large number of requests for such resources: up to 130 million requests per day, with periods of sustained bandwidth usage of 350Mbps, for resources that haven't changed in years.

W3CのサイトにおかれているDTDなどに対して、1日に1億3千万回ほどのアクセスがあるそうで。

たとえば、.NET FrameworkのXmlDocumentでXHTMLを読むなんてシチュエーションはありがちだと思いますが、XmlResolver = nullを指定せずにそのまま使うと、いちいちDTDにアクセスしに行ってしまいます。世界中でそういうことをされると、まあ、大変ですよね。

で、特定IPアドレスからのアクセスがあんまりにも多いとどうなるかというと……BANされて、DTDのかわりにこの記事へのリンクが表示されるようになるという。そうするとパーサが動かなくなるので、嫌でも気付くわけですね。

というわけでXmlResolver = nullを推奨、と言いたいのですが、XHTMLの場合はなかなか難しいものがあります。DTDをスルーしてWell-formedなXMLとして処理しようとすると、©などの実体参照が展開できずに残念なことになってしまうのです。XHTMLなどの代表的なDTDは取りに行かずに自前で処理してくれるXmlResolverが用意されていれば良いのに……と思ったら、こんなのがありました。

これは素晴らしい! 今すぐ使うべし! ……と思いきや、これ、今のところSilverlight専用なのですね。次期の.NET Framework 4には入るらしいので、首を長くして待ちましょう。

関連する話題: HTML / XML

最近の日記

関わった本など