›2005年06月19日

rdf拡張子とIf-Modified-Since

Category: RSS関連 / 2 Comments

InfoMakerの場合は全データ転送量の70%をRSSデータが占めますし、他のサイトでも人気のあるブログ、特にユーザーに割り当てるデータ転送量の上限が設定されている場合には If-Modified-Since に対応しないと死活問題かもしれません。RSSリーダーの If-Modified-Since に関して語られることは頻繁にありますが、サーバー側での対応問題が語られることは希なようです。

過去にRSSリーダーの If-Modified-Since の実装テストで、InfoMakerのサイトに設置している xml拡張子のファイルはOKなのに、rdf拡張子のファイルが Last-Modified (つまりIf-Modified-Sinceに304 Not Modified)を返さない問題に直面してからずーっと困っていたのですが、解決の方法がありました。

.htaccess に

AddHandler default-handler rdf

を記述することで解決するようです。(Apacheでやっちゃう場合は httpd.conf に)

現時点でrdf拡張子が If-Modified-Since に対応しているか、上記の方法で改善したかは feedAnalyzer で確認できます。レンタルホスティングを使用されている方はお試し下さい。かなりの方が xml拡張子はOKでも rdf拡張子はアウトです(苦笑)。

feedAnalyzer では連続してGET/HEADリクエストを発行したくなかったこともあり、正しくは If-Modified-Since への対応をチェックするのではなく Last-Modified をサーバーが返すかどうかで推測する形に止まっています。(なので完璧ではありませんが)

"更新時間" という項目が記入されている場合には If-Modified-Since に対応していると推測します。

レンタルホスティング会社のかなりの数と、大手のISPのホームページ領域の一部でもrdf拡張子に限っては If-Modified-Since に対応しないケースが確認されております。今後、ブログやRSSの普及が拡大するとデータ転送量の増加は "設備費" の増加につながります。この部分がデフォルトとして設定されるとサーバーにも帯域にも優しいとおもうのですが、いかがでしょうか?

feedAnalyzer - RSSの構文をチェックします

(モヤモヤしてたものが解決したので気分がいいかも 笑)

【追記】

AddHandler 適用前のfeedAnalyzerのステータス画面は

if_modified.gif

更新時間だけではなくファイルサイズも返ってこないですね。
AddHandler 適用後はこちら

Comments

私も以前調べたことがあります。
http://www.sutosoft.com/room/archives/000140.html
(2005/2/13のデータなので今は改善されている可能性があります)
If-Modified-Since未対応のサイトは結構多いですね。勘弁して欲しいところです。

Posted by: MASATO at 2005年06月19日 15:00

あっ。おせわになります。

ですよね。普通の人は気づかないです。

たとえばApacheの場合だと設定自体を変更する
ことになりますと最近騒がれているセキュリティ問題への
配慮が気になりますので安易には設定変更はできない
(すべきではないとも言えます)とはおもいます。
.htaccess での変更だと安心ですが普及は難しいので
VirtualHost 単位での変更が丁度手頃でしょうか。

ホスティング会社が固定費を圧縮させないといけない場合は
(このような部分の見直しは)急務かもしれません。

Posted by: t.o at 2005年06月19日 16:57