6.

フィード(Feed)とは|RSSとAtomの違いと仕組み・使い方

編集

フィード(Feed)とは、ウェブサイトの更新情報(新着記事のタイトル・要約・本文・公開日時・リンクなど)を、機械が読み取りやすい決まった形式でまとめて配信するための仕組み・データ形式のことです。RSSやAtomといったXMLベースの形式が代表的で、サイトを一つずつ巡回しなくても、フィードリーダーなどのソフトに登録しておくだけで複数サイトの新着をまとめて受け取れるようになります。ポッドキャストの配信にもフィードの技術が使われています。

この記事の要点
  • フィードは「更新情報を配信するためのデータ形式・仕組み」。サイトの新着を構造化されたテキストとして配信する。
  • 代表的な形式はRSS 2.0Atom 1.0JSON Feedの3つ。RSSとAtomはXML、JSON FeedはJSONで記述される。
  • 読む側はフィードリーダーに登録し、ソフトが定期的に更新を確認して新着を一覧表示する。
  • 作る側は多くの場合、CMSやブログツールがフィードを自動生成し、HTML側で配信の所在を告知する。
  • 主な用途は更新通知・複数サイトの一括購読・ポッドキャスト配信
  • 運用上の注意点として、文字コード・相対URL・更新頻度の扱いに気をつける必要がある。

フィード(Feed)とは

フィード(Feed)とは、ウェブサイトの更新情報を配信用に加工し、機械が処理しやすい構造化された形式でまとめたデータ、およびそれを配信する仕組みの総称です。ブログやニュースサイトのように頻繁に内容が更新されるサイトでは、新しい記事が公開されるたびに「タイトル」「要約または本文」「ページへのリンク」「公開日時」「著者」といった情報が決まった形でフィードに追記されます。利用者はこのフィードを購読しておくことで、サイトを直接訪問しなくても最新の更新を受け取れます。

「Feed」という語は本来「えさを与える」「供給する」という意味で、ここでは更新情報を継続的に供給し続けるイメージから来ています。文脈をより明確にするため、ウェブフィードニュースフィードと呼ばれることもあります。なお、SNSのタイムラインを指して「フィード」と呼ぶ用法も広まっていますが、本記事ではRSSやAtomに代表される、サイト更新情報を配信する仕組みとしてのフィードを扱います。

フィードの中身は、人が直接読むことを主目的としたHTMLページとは異なり、プログラムが解析(パース)して項目ごとに取り出せるよう、タグで区切られた構造を持っています。これにより、フィードリーダーや検索サービス、各種アプリケーションが、更新内容を自動的に取り込んで再利用できます。

フィードの主な用途

フィードは「サイトの更新情報を、決まった形で外部に渡す」という性質から、さまざまな場面で活用されています。代表的なものを挙げます。

更新通知

サイトに新しい記事が追加されたことを、購読者に知らせる用途です。利用者はお気に入りのサイトを巡回して新着を確認する手間が省け、サイト運営側は再訪問を促しやすくなります。新着があるかどうかをフィードの内容で機械的に判定できるため、自動化とも相性が良い仕組みです。

複数サイトの一括購読(フィードリーダー)

多数のサイトのフィードを一つのソフトやサービスにまとめて登録し、新着記事を時系列やサイト別に一覧表示する使い方です。情報収集を日常的に行う場面で、巡回先が多いほど効果が大きくなります。既読・未読の管理ができるツールも多く、見落としを減らせます。

ポッドキャスト配信

音声や動画のエピソードを配信するポッドキャストは、RSSフィードを基盤として成り立っています。各エピソードの音声ファイルの場所やタイトル、長さなどをフィードに記述し、ポッドキャストアプリがそれを読み取って新着エピソードをダウンロード・再生します。テキスト以外のコンテンツ配信にフィードが使われる代表例です。

サイト間・サービス間の連携

フィードは構造化されたデータであるため、別のサイトに新着一覧を埋め込んだり、検索サービスや通知サービスが内容を取り込んだりといった、システム同士の連携の入り口としても利用されます。

主なフィード形式の比較

フィードにはいくつかの形式があり、それぞれ成り立ちや記述方法が異なります。現在よく使われる代表的な3形式の特徴を比較します。

形式記述言語ルート要素主な特徴主な用途
RSS 2.0XML<rss>普及度が高く、対応ツールが豊富。比較的シンプルな構造で、各記事は項目(item)として記述される。ブログ・ニュース・ポッドキャスト
Atom 1.0XML<feed>標準化団体によって仕様が定められた形式。日時や本文の扱いなどが厳密に規定され、各記事は項目(entry)として記述される。ブログ・各種更新配信・API応答
JSON FeedJSON(JSONオブジェクト)XMLではなくJSONで記述する比較的新しい形式。プログラムから扱いやすいが、対応ツールはRSS/Atomより限られる。Web開発・プログラムからの生成

RSS 2.0とAtom 1.0はどちらもXMLで書かれ、表現できる情報や用途は大きくは変わりません。一般に、対応ツールの多さを重視するならRSS 2.0、仕様の厳密さや日時・本文表現の明確さを重視するならAtom 1.0が選ばれる傾向があります。JSON FeedはXMLを扱わずに済む手軽さが利点ですが、対応の広さでは先行する2形式に及びません。多くのCMSやブログツールはRSSとAtomの両方、あるいはいずれかを標準で出力します。

フィードの仕組み

フィードの実体は、サイトの更新一覧を記述した一つのファイル(多くはXML)です。サーバー上の特定のURLに置かれ、フィードリーダーなどがそのURLにアクセスして内容を取得します。

例えばRSS 2.0のフィードは、全体を囲むルート要素の中に、サイト全体の情報を表す部分と、記事ごとの項目が並ぶ構造になっています。おおまかなイメージは次のとおりです(実際のタグの書き方を示すため、ここではタグを文字として表示しています)。

<rss version="2.0">

  <channel>

    <title>サイト名</title>

    <link>https://example.com/</link>

    <item>

      <title>記事タイトル</title>

      <link>https://example.com/article</link>

      <description>記事の要約</description>

      <pubDate>公開日時</pubDate>

    </item>

  </channel>

</rss>

このように、記事一覧が決まったタグで区切られているため、フィードリーダーはタイトルやリンク、公開日時を確実に取り出せます。Atom 1.0の場合は全体を<feed>で囲み、記事ごとに<entry>を並べる構造になります。

フィードの所在をHTMLで告知する

利用者やソフトがフィードの場所を見つけやすいよう、HTMLページの先頭部分(head内)に、フィードへのリンクを示す記述を置くのが一般的です。これにより、ブラウザの拡張機能やフィードリーダーがページを開いたときに、関連づけられたフィードを自動的に検出できます。記述例は次のとおりです。

<link rel="alternate" type="application/rss+xml" title="サイト名" href="https://example.com/feed.xml">

typeの値は、RSSであれば application/rss+xml、Atomであれば application/atom+xml を指定します。この記述自体はページの見た目には影響せず、フィードの存在を機械に知らせる役割を担います。

読む側:フィードリーダー

フィードを購読して読むためのソフトやサービスをフィードリーダー(RSSリーダー、フィードアグリゲーターとも)と呼びます。利用者はサイトのフィードURLを登録するだけで、あとはフィードリーダーが定期的にそのURLを確認し、新着があれば取り込んで一覧表示します。

フィードリーダーには、ブラウザ上で動作するウェブ型、パソコンやスマートフォンにインストールするアプリ型などがあります。多くは複数サイトの新着をまとめて時系列で表示したり、既読・未読を管理したり、キーワードやサイトごとに整理したりする機能を備えています。サイト側に告知用のリンクが置かれていれば、フィードURLを手で調べなくても登録できる場合があります。

作る側:フィードの生成

フィードを自分で一から手書きすることはまれで、実際にはCMS(コンテンツ管理システム)やブログツールが、記事の投稿・更新に合わせてフィードを自動生成するのが一般的です。新しい記事を公開すると、その情報がフィードファイルに自動的に反映され、購読者のフィードリーダーに届きます。

独自にサイトを構築している場合は、記事データからRSSやAtomの形式に沿ったXMLを出力する処理を実装します。その際は、配信する項目(タイトル・リンク・要約・公開日時など)を仕様に沿って正しく記述すること、文字コードや日時の書式を適切に扱うことが重要になります。生成したフィードが仕様に沿っているかは、フィードの検証ツールで確認できます。

運用上の落とし穴

フィードを配信・利用する際に、つまずきやすい代表的なポイントを挙げます。

注意点内容
文字コードの不一致XMLの宣言で指定した文字コードと、実際のファイルの文字コードが食い違うと、日本語が文字化けしたり、フィードが正しく解釈されなかったりします。宣言と実体(一般にUTF-8)をそろえることが基本です。
相対URLの扱い記事内のリンクや画像を相対URL(パスの一部のみ)で記述すると、フィードリーダー上では基準となるページが異なるため、リンク切れや画像非表示になることがあります。フィード内では完全な形のURL(絶対URL)で記述するのが安全です。
更新頻度と取得間隔フィードリーダーは定期的にフィードを取得するため、更新がほとんどないのに頻繁に確認されるとサーバーに無駄な負荷がかかります。一方、更新が反映されるまでに時間差が生じることもあります。取得側・配信側ともに適切な間隔を意識する必要があります。
本文の埋め込み方記事本文にHTMLを含める場合、そのまま書くとフィードのXML構造を壊すおそれがあります。仕様に沿った方法でエスケープまたは囲い込みを行い、安全に埋め込む必要があります。
項目の識別子各記事を一意に識別する情報が不適切だと、フィードリーダーが同じ記事を新着として重複表示したり、逆に更新を見落としたりすることがあります。記事ごとに安定した識別子を持たせることが望まれます。

よくある質問(FAQ)

Q. RSSとAtomはどちらを使えばよいですか?

A. どちらもサイトの更新を配信するためのXML形式で、できることに大きな差はありません。対応ツールの多さを重視するならRSS 2.0、仕様の厳密さや日時・本文表現の明確さを重視するならAtom 1.0が選ばれる傾向があります。使用しているCMSやブログツールが標準で出力する形式をそのまま使えば、多くの場合は十分です。両方を同時に配信することもできます。

Q. フィードを読むには専用ソフトが必要ですか?

A. フィードの内容を見やすく一覧表示するには、フィードリーダー(ウェブ型・アプリ型など)を使うのが一般的です。フィード自体はテキストデータなので中身を直接開くこともできますが、人が読みやすい形にまとめてくれるフィードリーダーを利用するほうが実用的です。

Q. SNSのフィードとここでいうフィードは同じものですか?

A. 言葉は同じ「フィード」ですが、指すものは異なります。SNSの「フィード」は、タイムラインに流れてくる投稿の並びを指す呼び方です。本記事で扱うフィードは、サイトの更新情報をRSSやAtomといった決まった形式で配信する、ウェブの仕組みとしてのフィードを指します。共通しているのは「更新情報を継続的に届ける」という考え方です。

編集
Post Share
子ページ
  1. RSS
同階層のページ
  1. RESTサービス
  2. gRPC
  3. シングルトン
  4. コンテントタイプ(Content-Type)一覧
  5. sitemap.xml
  6. Feed
  7. ブロックチェーン

最近更新/作成されたページ