RSS 2.0 und Atom 1.0 im Vergleich (Sam Ruby et al.)
Übersetzung eines Artikels von Sam Ruby et al. vom 2. November 2006. Schwerpunkt: Webentwicklung (RSS-Feed für alle Themen).
Bei der Generierung von Feeds besteht eine Auswahl von Feed-Formaten. Zumindest seit Mitte 2005 sind RSS 2.0 und Atom 1.0 dafür die naheliegendsten Kandidaten. Der Zweck dieses Dokuments ist, so klar und einfach wie möglich die Unterschiede zwischen den Syndizierungssprachen RSS 2.0 und Atom 1.0 zusammenzufassen.
Diese Ăśbersetzung basiert auf dem Stand des Originaldokuments vom 29. September 2006 und wird bei signifikanten Ă„nderungen aktualisiert. Es ist festzuhalten, dass die Aussagen dieser Seite aus dem Umfeld der Atom-Arbeitsgruppe stammen und deshalb eventuell voreingenommen sind; faktisch scheint Atom RSS jedoch in vielen Aspekten voraus.
Inhalt
- Größere und qualitative Unterschiede
- Kleinere Unterschiede
- RSS- und Atom-Feed-Beispiele
- Elementvergleich
Größere und qualitative Unterschiede
Deployment
- 21. Juli 2005: RSS 2.0 wird vielerorts, Atom 1.0 hingegen nur von wenigen »Early Adopters« eingesetzt, siehe bekannte Atom-Feeds sowie bekannte Atom-Konsumenten.
- 22. Januar 2006: In grundlegender Form wird Atom 1.0 weitgehend unterstützt. Viele Aggregierer scheitern an Feeds, die strukturell nicht RSS-2.0-Feeds gleichen. Einige akzeptieren jedoch Fehlerberichte, und ein paar veröffentlichen sogar Fixes. Den aktuellen Status können Sie bei den Konformitätstests einsehen.
- 21. Mai 2006: Atom 1.0 wird von den bedeutenderen Feedreader-Applikationen weitgehend unterstützt, mit Bloglines als beachtenswerter Ausnahme.
- 20. Juni 2006: Bloglines veröffentlicht seinen neuen Atom-1.0-Parser, so dass Atom 1.0 von allen wesentlichen Feedreadern grundlegend unterstützt wird.
Spezifikationen
Die RSS-2.0-Spezifikation wurde von der Harvard-Universität urheberrechtlich geschützt und »eingefroren«. Es können keine signifikanten Änderungen mehr vorgenommen werden (obwohl die Spezifikation einer »Creative Commons«-Lizenz unterliegt), und es ist beabsichtigt, dass zukünftige Arbeit unter einem anderen Namen vorgenommen wird; Atom ist dafür ein Beispiel.
Atom 1.0 wird in RFC 4287 (HTML-Version) spezifiziert; es entspricht der allgemeinen Meinung der Atompub-Arbeitsgruppe der IETF, wie von der IETF-Gemeinschaft und der »Internet Engineering Steering Group« überprüft und genehmigt. Die Spezifikation ist derart strukturiert, dass die IETF weitere Versionen oder Revisionen dieser Spezifikation herausgeben könnte, ohne bestehende Deployments zu stören, obwohl es aktuell weder Zusagen noch ein irgendwie geäußertes Interesse gibt, dies zu tun.
Beachten Sie den untenstehenden Abschnitt über Erweiterbarkeit, um zu erfahren, wie beide Formate erweitert werden können, ohne die zugrundeliegenden Spezifikationen zu ändern.
Veröffentlichungsprotokolle
Mit RSS gibt es zwei weitverbreitete, populäre Protokolle, MetaWeblog und Blogger. Häufig gibt es zudem Problemberichte bezüglich Interoperabilität und Funktionsmängeln.
Die Atompub-Arbeitsgruppe hat unterdessen die Entwicklung des Atom-Veröffentlichungsprotokolls, das eng mit dem Atom-Feed-Format verbunden ist und auf Erfahrungen mit den existierenden Protokollen basiert, fast abgeschlossen.
Erforderlicher Inhalt
RSSÂ 2.0 erfordert auf Feed-Ebene Titel, Link und Beschreibung. Es verlangt jedoch nicht, dass in einem Eintrag irgendein Element vorhanden sein muss.
Atom 1.0 erfordert, dass sowohl Feeds als auch Einträge einen Titel (der leer sein darf), einen eindeutigen Bezeichner und einen Zeitstempel der letzten Aktualisierung beinhalten.
Nutzlast
RSS 2.0 darf entweder reinen Text oder »escaped« HTML beinhalten, wobei kein Weg existiert, anzuzeigen, welches von beidem angeboten wird. Escaped HTML ist häßlich (die Zeichenkette »AT&T« würde zum Beispiel als »AT&T
« ausgedrückt werden) und stellte eine Hürde für Implementierer dar. Das Inhaltsmodell für Titel ist unterspezifiziert; Titel, die spitze Klammern oder kaufmännische Und beinhalten, werden von einem erheblichen Teil von Readern ohne Rücksicht auf ihre Schreibweise fehlinterpretiert. Das RSS-2.0-Inhaltsmodell lässt kein tatsächlich wohlgeformtes XML-Markup zu, was die Wiederverwendbarkeit von Inhalten reduziert.
Atom verfügt über einen sorgfältig konzipierten »Nutzlast«-Container. Inhalte müssen explizit als eines der folgenden Formate gekennzeichnet werden:
- reiner Text ohne Markup (Standard);
- escaped HTML, wie für gewöhnlich bei RSS 2.0;
- wohlgeformtes XHTML-Markup;
- anderes XML-Vokabular;
- Base64-kodierter Binärinhalt;
- Zeiger zu nicht in den Feed einbezogenen Webinhalten.
Es gibt keine Garantie dafür, dass Empfänger in der Lage sind, irgendetwas Sinnvolles mit willkürlichem XML oder Binärinhalten zu machen. Es wird jedoch garantiert, dass Empfänger nicht unpassenderweise versuchen, Inhalte zu verarbeiten, die sie nicht verarbeiten können.
Voller oder partieller Inhalt
RSSÂ 2.0 verfĂĽgt ĂĽber ein description
-Element, das üblicherweise dazu verwendet wird, entweder den vollen Text oder einfach eine Zusammenfassung eines Eintrags einzubinden (manchmal innerhalb desselben Feeds), aber das manchmal fehlt. Es gibt keinen integrierten Weg, zu signalisieren, ob Inhalte vollständig sind.
Atom besitzt getrennte summary
- und content
-Elemente. Die Zusammenfassung wird aus BarrierefreiheitsgrĂĽnden empfohlen, sollte der Inhalt nicht textlich (beispielsweise bei Audio) oder nicht lokal sein (da beispielsweise durch einen Zeiger identifiziert).
Automatisches Erkennen
»Autodiscovery« für RSS wurde mehrmals unterschiedlich implementiert, setzt oftmals auf dem unregistrierten (und damit invaliden) MIME-Typ application/rss+xml
auf und wurde nie standardisiert. Dies stellt eine verbreitete Problemquelle fĂĽr technisch weniger versierte Benutzer dar.
Atom standardisiert automatisches Erkennen. Der MIME-Typ application/atom+xml
ist bei der IANA angemeldet. Zudem beinhalten Atom-Feeds einen self
-Zeiger, so dass sich ein Newsreader angesichts der Inhalte des Feeds automatisch anmelden kann, was wiederum auf standardisierter Versandtechnik basiert.
Extraktion und Aggregation
Die einzig anerkannte Form von RSSÂ 2.0 besteht in einem rss
-Dokument.
Atom 1.0 ermöglicht alleinstehende Atom-Dokumente; diese können über ein beliebiges Netzwerkprotokoll wie XMPP übertragen werden. Atom verfügt auch über Unterstützung für aggregierte Feeds, in denen Einträgen gestattet wird, auf den Feed, aus dem sie kamen, zurückzuverweisen, wenn sie in anderen Feeds inkludiert werden.
Kleinere Unterschiede
Erweiterbarkeit
RSS 2.0 befindet sich in keinem XML-Namensraum, darf aber Elemente aus anderen XML-Namensräumen beinhalten. Es gibt keinen zentralen Ort, wo man populäre Erweiterungen ausfindig machen kann, wie etwa dc:creator
und content:encoded
.
Atom 1.0 befindet sich in einem XML-Namensraum und darf Elemente oder Attribute aus anderen XML-Namensräumen beinhalten. Es gibt spezifische Richtlinien dazu, wie Erweiterungselemente zu interpretieren sind. Zudem wird es ein von der IANA verwaltetes Verzeichnis von link rel=""
-Werten geben. Letztendlich bietet Atom 1.0 empfohlene Anlaufpunkte für Erweiterungen sowie Anleitungen, wie einfache Erweiterungen zu interpretieren sind.
URIs
RSS 2.0 spezifiziert nicht, wie mit relativen URI-Verweisen umzugehen ist. Verschiedene Feedreader wenden zu ihrer Interpretation voneinander abweichende Heuristiken an. Es gibt keine Interoperabilität. Relative URI-Referenzen können in der Praxis nicht verwendet werden.
Atom 1.0 spezifiziert den Gebrauch von XMLs integriertem xml:base
-Attribut, um den Einsatz von relativen Verweisen zu ermöglichen.
SoftwareverfĂĽgbarkeit
Auf sowohl RSS-2.0- als auch Atom-1.0-Feeds kann über Standard-HTTP-Client-Bibliotheken zugegriffen werden. Standard-Caching-Techniken funktionieren gut und werden gefördert. Die vorlagengetriebene Erstellung beider Formate ist praktikabel.
Bibliotheken zur Verarbeitung von RSSÂ 2.0:
Bibliotheken zur Verarbeitung von Atom 1.0:
Sprachkennzeichnung
RSSÂ 2.0 besitzt zur Identifikation der in einem Feed verwendeten Sprache ein eigenes language
-Element, während Atom das in XML integrierte xml:lang
-Attribut gebraucht.
Digitale Signaturen und VerschlĂĽsselung
RSS 2.0 kann wie jeder andere Webinhalt signiert oder verschlüsselt werden, wenn es als »Sack voller Bits« behandelt wird.
Atom 1.0 umfasst Regeln zum Einsatz standardisierter XML-Verschlüsselung sowie digitaler XML-Signaturen für Einträge. Feeds können alternativ und wie bei RSS 2.0 auch als »Bit-Säcke« signiert oder verschlüsselt werden.
Autoren
RSS 2.0 bietet die Möglichkeit, E-Mail-Adressen für managingEditor
, webMaster
und author
eines Feeds zu spezifizieren. Manche Herausgeber von Feeds bevorzugen, keine E-Mail-Adressen freizugeben, und verwenden statt dessen dc:creator
aus der Dublin-Core-Erweiterung.
Atom 1.0 offeriert author
- und contributor
-Elemente auf sowohl Feed- als auch Eintragsebene. Diese Elemente mĂĽssen einen Namen beinhalten und verfĂĽgen ĂĽber optionale E-Mail- und URI-Unterelemente.
Kategorien
RSS-2.0-Kategorien bestehen aus zwei Teilen: Beschriftung und Domäne.
Die in Atom 1.0 bestehen aus drei, nämlich den beiden genannten sowie einem optionalen, für Menschen lesbaren Titel.
Schema
Die RSS-2.0-Spezifikation umfasst kein Schema.
Atom 1.0 beinhaltet ein einem ISO-Standard entstammendes (non-normatives) RELAX-NG-Schema, um diejenigen zu unterstützen, die die Validität von Daten, die als Atom 1.0 beworben werden, prüfen wollen. Andere Schemaformate können über das RELAX-NG-Schema generiert werden.
RSS- und Atom-Feed-Beispiele
RSSÂ 2.0
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Example Feed</title>
<description>Insert witty or insightful remark here</description>
<link>http://example.org/</link>
<lastBuildDate>Sat, 13 Dec 2003 18:30:02 GMT</lastBuildDate>
<managingEditor>johndoe@example.com (John Doe)</managingEditor>
<item>
<title>Atom-Powered Robots Run Amok</title>
<link>http://example.org/2003/12/13/atom03</link>
<guid isPermaLink="false">urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</guid>
<pubDate>Sat, 13 Dec 2003 18:30:02 GMT</pubDate>
<description>Some text.</description>
</item>
</channel>
</rss>
Atom 1.0
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Example Feed</title>
<subtitle>Insert witty or insightful remark here</subtitle>
<link href="http://example.org/" />
<updated>2003-12-13T18:30:02Z</updated>
<author>
<name>John Doe</name>
<email>johndoe@example.com</email>
</author>
<id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id>
<entry>
<title>Atom-Powered Robots Run Amok</title>
<link href="http://example.org/2003/12/13/atom03" />
<id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
<updated>2003-12-13T18:30:02Z</updated>
<summary>Some text.</summary>
</entry>
</feed>
Elementvergleich
Atom 1.0 definiert 21 Elemente; RSS 2.0 30. Die meisten in Atom 1.0 fehlenden RSS-2.0-Elemente wurden entweder in der Praxis nicht weitgehend implementiert oder ihre Funktionen werden auf andere Weise angeboten.
RSS 2.0 | Atom 1.0 | Kommentare |
---|---|---|
rss
| – | In RSS »verkümmert« |
channel
| feed
| |
title
| title
| |
link
| link
| Atom definiert eine erweiterbare Familie von rel -Werten
|
description
| subtitle
| |
language
| – | Atom verwendet das standardisierte xml:lang -Attribut
|
copyright
| rights
| |
webMaster
| – | |
managingEditor
| author oder contributor
| |
pubDate
| published (in einem Eintrag)
| Atom besitzt kein Ă„quivalent auf Feed-Ebene |
lastBuildDate (in einem Kanal)
| updated
| RSS besitzt kein Ă„quivalent auf Element-Ebene |
category
| category
| |
generator
| generator
| |
docs
| – | |
cloud
| – | |
ttl
| – | ttl ist problematisch – ziehen Sie HTTP-1.1-Cache-Kontrolle vor
|
image
| logo
| Atom empfiehlt ein Seitenverhältnis von 2:1 |
– | icon
| Wie favicon.ico
|
rating
| – | |
textInput
| – | |
skipHours
| – | |
skipDays
| – | |
item
| entry
| |
author
| author
| |
– | contributor
| |
description
| summary oder content
| Abhängig davon, ob der komplette Inhalt angeboten wird |
comments
| – | |
enclosure
| – | Atom: rel="enclosure" auf link -Element
|
guid
| id
| |
source
| – | Atom: rel="via" auf link -Element
|
– | source
| Container für Metadaten auf Feed-Ebene, um Aggregation zu fördern |
Siehe auch:
Ähnliche Beiträge
Das könnte dich ebenfalls interessieren:
Die Webentwicklung gut überblicken? Probier WebGlossary.info – und The Web Development Glossary 3K (2023). Mit Erklärungen und Definitionen zu tausenden Begriffen aus Webentwicklung, Webdesign und verwandten Feldern, aufbauend auf Wikipedia sowie MDN Web Docs. Erhältlich bei Apple Books, Kobo, Google Play Books und Leanpub.