Internet Archive(Wayback Machine)で「Content-Type: application/xhtml+xml」なページの表示がエラーになる件とその回避策(12/7対策を確認したので追記)
12/7追記
「先方に報告したい(キリッ」と言っているうちに問題が発生したブラウザ全部で表示されるよう直っていました。
症状
Content-Type: application/xhtml+xml なコンテンツをWayback Machineで表示しようとすると、多くのブラウザでXMLパースエラー等により表示されません。12/7 直りました
IE | 空のページのみ表示 |
Firefox, Chrome | |
Opera(〜12), w3m | 問題なし |
なお、サーバから「Content-Type: text/html」が返された場合はエラーとなりません。
症状が確認できるURL例
(12/7 いずれも正常に表示されるようになりました。ただしXHTML 1.1 Invalidな状態は続いています)
原因
Wayback Machineでページを表示するとページの上部にツールバーが表示されるのですが、これを構成するパーツがXHTML Invalidとなっています。以下の事象が確認されています。(12/7 下記の事象は全て解消されました)
- 一部inputおよびimg要素が空要素指定されていない(/>で閉じられていない)
- strong要素が閉じられてない
- script要素においてスクリプトの内容がCDATAセクションでない上に「&&」の文字を含んでいる
回避策
id_(およびim_)をURL中の指定の場所に付加した場合はツールバーが表示されませんので、これで回避可能です。
- http://web.archive.org/web/20140420185608id_/http://studyinghttp.net/rfc_ja/rfc2616
- http://web.archive.org/web/20140830120027id_/http://www.w3.org/TR/2002/WD-XHTMLplusMathMLplusSVG-20020809/sample.xhtml
ちなみにこれの存在は
Internet Archive総合 (web.archive.org) #1
経由で
Help:Using the Wayback Machine
において説明されているのを知りました。
最後に
そもそもの発端は、残念ながら閉鎖された「Studying HTTP(Internet Archive, はてなブックマーク)」にあったRFC2616の和訳を見ようとしたことでした。
ブラウザがパースエラーを返してしまうため、ちゃんと見るにはOpera 12が必要でした(うーん、無駄に優しいなぁ、Opera 12)。
その時は、どこが問題なのかちゃんと検証することもなく放置してしまっていたのですが、後日Wayback Machineでは「charset=x-sjisといった非公式なcharsetを指定したコンテンツが文字化けしてしまう」という問題が取りざたされ(現在は対策されました)、それに関する2chでの議論で示されていた回避策が前述の「id_」でした。
先に挙げたRFCの和訳を見るという需要はこれで十分に満たしていましたし、またツールバーも貼り付けず、文字コードも変換しないことから「各日本語訳の配布は、該当文書に一切の改変を加えない事を条件とします(Internet Archive)」という訳者からの要望をより的確に叶えるものであったと考えています。
なお、回避策こそあるものの、パースエラーが発生する原因はサービス側で修正する必要があるため、「ここをこういう風に直してほしい」という資料を用意して、後ほど先方に連絡したいと思っています。