RSSといふもの

由唯さんとこ。えーと、わしも完全に理解したわけではないのでアレなんですが、自分の理解を確かめるためにもちょっと書いてみます。

結論からいえば、そのサイトの最終更新時刻だけ欲しいのであれば、何もRSSへアクセスする必要はありません。HTTPのHEADでとればいいわけだし、それでとれないサイトは各種アンテナやWWWCあたりが対応しているテクノロジで各自対応していけばよろしいかと。RSSが目指しているのは、更新時刻を配信するということではありません。

RSSっちゅーのはRich Site Summaryだか、RDF Site Summaryだか知らないけど、そういう感じの言葉の頭字語で、要はサイトに載せられた記事の概要をコンパクトにまとめてXML化して提供しましょう〜ってことですな。こうすると何がうれしいかというと、その情報を機械で処理できるということですね。

ってすませると簡潔すぎるのでもうちょっと説明。例えばbulkfeeds.netがあります。ここはいろんなblog/日記のRDFファイルを収集して検索可能なわけですが、ここのサービスを利用すると、全てのblogを横断して似たような話題を検索したり、同じURI(ニュースとかネタサイトとか)について言及してるblogや日記を一覧できたりします。もちろんGoogleって探すというのも一つの手ではあるんですが、RDFという統一したフォーマットに対して検索をかけられるというのは、やっぱり圧倒的に機械にやさしいわけです。

他にも、クライアントベースでいえばSharpReaderみたいなRSSリーダーがあるわけですが、これは全てのRSSフィード*1に対して、時系列にソートをかけたり、未読かどうかでフィルタをかけたりできます。これが嬉しいのはどちらかといえばニュースサイトとか、ニュース性の高いblog。ニュースを項目ごとにメール配信を受けてる感覚で読み進めることができるので、自分にとって重要なニュースの読み落としが少なくなる(かなあ)、といったメリットがあるわけです。

あとはmixiみたいに、blogだの日記だのの新しいトピックを並べてみる、みたいなこともできるわけですね。

ちなみに、更新時刻を知りたいという需要に関しては、この業界(?)ではpingというソリューションがあります。サイトを更新した際に、bulkfeedsみたいなところへプッシュ式に更新を知らせるわけですな。確かなつみかんにもプッシュ更新時刻受信という、ほぼ同等の機能が用意されていたはずです。使われてた例見たことありませんが(笑)。pingの弱点は、現在見られるような各所に点在するアンテナやWWWCみたいなクライアントが更新情報を取得するという概念には向いてないということです。まあ、これは自明ですよね。なので自然と、RSSクライアントは定期的にクライアントプルを繰り返して、トラフィックを増大させる原因となっている気はします。

ここからはわしの考えなんですが、こうした特性があるので、RSSフィードCGI的な動的生成で対応するべきではないような気がします。どのくらい負荷がかかるかわからんからね。気の利いたRSSクライアントなら304 Not Modifiedくらいは理解するでしょうし、静的生成であれば短期間に大量にGETされても耐えられるんじゃないかと。むろん、そこらへんを考えて(キャッシュとか)CGIを組むという考え方はありますが、そこまでやるよりは静的生成のほうが楽なんじゃないかなあという素人的考え。というようなことをmmasudaさめんとこを読みながら思ったわけです。

まあ、15分はさすがにやりすぎ。SharpReaderだってデフォルトは1時間だし、アンテナとかその他の考え方をみても、やっぱり30〜2時間くらいごとにGETしにいくのが妥当かと。このへんを更新頻度によってチェックする回数を加減するという仕組みを作り込むかどうかってのは、アンテナとかでも何回か考察されてると思うので以下略です*2

と、とりあえずこんなところまで。あとはえらい人にお任せします(笑)。

*1:RSSを提供しているサイトという程度の意味

*2:実はどういう結論になったのか覚えてない(^-^;;