ブログが人気の今日、一部の Web アプリケーションでは大量の RSS フィードを解析する必要があり、効率を向上させる方法は非常に重要な問題です。これは、MagpieRSS の機能にリストされています: HTTP 条件付き GETs Last-Modified と ETag を賢く使用して、帯域幅を節約し、ダウンロード時間を高速化します。 ここの Etag が私の注意を引きました。
Etagとは何ですか?
RFC 2616を読んで、Etagについて少し印象を持ちました:
ETag 応答ヘッダー フィールドは、要求されたバリアントのエンティティ タグの現在の値を提供します...エンティティ タグは通常「強力なバリデータ」ですが、プロトコルはエンティティ タグを「弱い」とタグ付けするメカニズムを提供すると考えることができます。強力なバリデーターはエンティティのビットが変更されるたびに変化するものであり、弱い値はエンティティの意味が変化するたびに変化します。あるいは、強力なバリデーターを特定のエンティティーの識別子の一部として考えることもできます。弱いバリデータは、意味的に同等のエンティティのセットの識別子の一部です。上記のことから、Entity タグは本質的に「強力なバリデーター」であることが大まかにわかりますが、HTTPプロトコルは Entity タグをタグ付けすることによって「弱い」メカニズムを提供します (
コンテンツ チェック コード と同様).この一節は後で 2 つの方法で説明されますが、まだ少しわかりにくいです。この文章を読んだ後、私は Etag の「E」が「Entity」を表していると結論付けました。 Magpie のホームページに記事が記載されていました:
RSS ハッカーのための HTTP 条件付き取得それを読んだ後、より明確になりました。まず HTTP 条件付き GET の基本原理について説明します。それは非常に簡単です。つまり、Web サーバーからデータを取得するときに、ファイルが変更されていなければ、新しいファイルを渡すだけです。クライアントには変更がないことを伝えますが、ファイルを戻す必要はありません。これにより、ネットワーク帯域幅とリソースを大幅に節約できます。 Etag と Last-Modified は、HTTP
1.0 から HTTP1.1 でのみ使用できる概念です。 Web サーバーからファイルを取得するときは、HTTP 応答ヘッダーの Etag フィールドと Last-Modified フィールドを読み取るだけで済みます。これら 2 つのフィールドの具体的な内容は気にしません (RFC は奇妙かもしれません。 2616 は Etag を気にしません(特定の値の定義はありません)、これら 2 つの値をローカルにキャッシュし、次回ファイルが更新されているかどうかを確認するときに 2 つの値を比較します。変化がない場合、サーバーの応答コードは HTTP 200 (OK) ではなく、304 になります。
上の写真のように。現在(LilinaもETagを適用)を使用する過程で、FeedBurnrerによって書き込まれたほとんどすべてのフィードがEtagを使用していることがわかりました(そうしないとサーバーが麻痺する可能性があります、ほほ) もう一度HTTPをテストしましょうヘッダー。応答:そうです この期間中、ブログは更新されていませんでした。このようにして、Last-Modified と ETag は同じ値を返します。Gregarius は再解析する必要がありません。国内の GreatNews は
HTTP条件付き GET をサポートしており、さらに良いことに gzip/deflate エンコードもサポートしています。 。別の RSS 読み取りツール POPU (Zhou Botong) については知りません。 上記は私のメモです。誤解がある場合は修正してください。
http://www.bkjia.com/PHPjc/318539.html