gzip 圧縮された RSS フィードに対応した RSS リーダーは?

Posted by
ぴろり
Posted at
2007/03/06 20:47
Trackbacks
関連記事 (1)
Comments
コメント (2)
Post Comment
コメントできます
Category
開発メモ カテゴリ
カバーイメージ

 先日、コンテンツをgzip圧縮して出力するMovableTypeプラグインを作成し、早速これを用いてRSSをgzip圧縮するようにしていました。RSSフィードは数十分〜数時間程度の短い間隔で頻繁にアクセスされることから、圧縮による転送量削減の効果が期待できると思ったからです。
 しかしRSSリーダーの中にはgzip圧縮されたRSSには対応していないものがあるようです。そこで幾つかのクライアント/RSSリーダーについてこれを調べてみました。

この記事を Delicious に追加する   このエントリーをはてなブックマークに追加  

手順 ('07/03/07 追記)

  1. 正しく読める RSS1.0 のフィード index.rdf を用意する
  2. 各クライアントから index.rdf を購読してみる
  3. gzip を用いて index.rdf を圧縮し index2.rdf.gz を生成する
  4. 各クライアントから index2.rdf を購読してみる

 サーバへのリクエスト中に Accept-Encoding: gzip,deflate があるなしに関わらず、 index2.rdf へのレスポンスは常に圧縮されたデータが返されるという状態で、 夫々のクライアントの挙動を見てみました。 元から Accept-Encoding を送出してくるクライアントであれば通常通りに動作し、 未圧縮のデータしか受け付けないクライアントであれば何かしら不具合が出ると予想されます。 このことから各クライアントがRSSフィードの圧縮転送に対応しているかが判ります。

アプリケーション 表示購読備考
はてなRSS - NG フィードを登録できない。「フィードが見つかりませんでした」のメッセージ
livedoor Reader - NG フィードを登録できない。「登録可能なフィードが見つかりませんでした」のメッセージ
Google Reader - OK
SharpReader - OK v.0.9.7.0
Mozilla Thunderbird - OK
Mozilla Firefox OK OK Live Bookmark, 1.5
Internet Explorer OK -
Opera OK OK 9.1
Netscape OK -7.1

 コンテントネゴシエーションの本来の使い方から言えば当然のことですが、 横着をして *.rdf.gz だけ用意しておくのではダメなようで orz  基本はgzip圧縮されたデータを返すけれど、 未対応のクライアント用にも生データを用意しておく必要があります。 ...って、mod_deflate を使えば一発か!

 RSS リーダの中には If-Modified-Since を解せずに 毎回フィード全体を取得していくものがあったりします。 サーバが 304 Not Modified を返せるようになるだけで負担は大きく違うと思うので、 RSSリーダー開発者の方には是非とも対応して頂きたいところです。 更に贅沢を言えば今回調べてみた gzip 圧縮転送に対応したものが増えてくれるともっと嬉しいですね。

この記事を Delicious に追加する   このエントリーをはてなブックマークに追加  


この記事を読んだ人はこんな記事も読んでいます記事リコメンデーションについて

カバー画像:コンテンツを gzip 圧縮して出力する MovableType プラグイン:CompressGZip

関連記事/トラックバック (全 1 件中、最新 5 件まで表示しています)

Open MagicVox.net のスクリーンショット
タイトル
RSSリーダーから送出されるHTTPリクエストヘッダ
Trackbacked at
2007/03/07 13:29
from
Open MagicVox.net
概要
 先の"gzip圧縮されたRSSフィードに対応したRSSリーダーは?" という記事で,幾つかのRSSリーダーについてgzip圧縮されたRSSフィードを扱...

この記事にトラックバックを送るには?

寄せられたコメント (全 2 件中、最新 5 件まで表示しています)

Posted by
ぴろり ◆OLEEi.VOX.ぴろり ◆OLEEi.VOX.
at
2007/03/07 07:18
ID
kgnA6XjI
今回はサーバ側に圧縮された*.rdf.gzだけを置いて、未圧縮の*.rdfが無い状態で試行しました。
リクエスト中にAccept-Encodingがあるなしに関わらず、常に圧縮されたデータが返されるという状態です。
そのため未圧縮データを要求するクライアントに対しても問答無用に圧縮データを返すわけで、
サーバの動作としては不正なわけですね。
ご指摘のように記述が不十分で誤解を招いていましたので追記してみました。
Posted by
malamala
at
2007/03/06 23:04
ID
efYQC6LM
登録できない、というのは語弊があると思うのですが。
Accept-Encodingを送ってないクライアントに対して
gzip圧縮されたファイルを返すとしたら、それはウェブサーバー側の問題ですよね。

コメントを投稿する

 
 (必須, 匿名可, 公開, トリップが使えます)
 (必須, 匿名可, 非公開, Gravatar に対応しています)
 (必須)
スパム コメント防止のため「投稿確認」欄に ランダムな数字 CAPTCHAについて を入力してから送信してください。お手数ですがご協力のほど宜しくお願いいたします。