RSS

Disambiguazione – Se stai cercando altri significati, vedi RSS (disambigua).
RSS
Estensione.rss, .xml
Tipo MIMEapplication/rss+xml
SviluppatoreNetscape, UserLand Software, RSS-DEV Working Group, RSS Advisory Board
LicenzaCreative Commons Attribuzione-Condividi allo stesso modo (RSS 2.0)
1ª pubblicazione15 marzo 1999
Ultima versione2.0.11 (ramo RSS 2.0); 1.0 (ramo RDF) (30 marzo 2009)
TipoFeed
Estensione diXML
Standardde facto
Formato aperto?Sì
Sito webwww.rssboard.org/rss-specification

RSS è una famiglia di formati basati su XML per la distribuzione e l'aggregazione di contenuti Web. Un documento RSS, chiamato comunemente feed, elenca in forma strutturata gli aggiornamenti pubblicati da un sito — articoli, post, episodi audio — insieme a metadati come titolo, autore, data e collegamento all'originale. Un programma detto aggregatore o lettore di feed interroga periodicamente i feed a cui l'utente si è iscritto e ne presenta i contenuti in modo omogeneo, senza che sia necessario visitare i singoli siti a uno a uno.

La sigla è stata sciolta in tre modi diversi, corrispondenti a rami di sviluppo distinti e non a semplici sinonimi: RDF Site Summary nella versione originale del 1999 e in RSS 1.0, Rich Site Summary nelle versioni 0.9x di UserLand, e Really Simple Syndication in RSS 2.0. Questa ambiguità terminologica riflette la vicenda del formato, sviluppato in parallelo da gruppi in disaccordo tra loro e mai sottoposto a un processo di standardizzazione formale.

RSS non è uno standard approvato da un ente di normazione: è uno standard de facto. Il ramo principale, RSS 2.0, è mantenuto dall'RSS Advisory Board sotto licenza Creative Commons ed è fermo alla revisione 2.0.11 del 2009; il ramo RDF, RSS 1.0, è pubblicato da un gruppo di lavoro indipendente. Le frizioni tecniche e organizzative fra i due rami hanno portato nel 2003 alla creazione di un formato concorrente, Atom, questo sì standardizzato dall'IETF nel 2005. Nonostante il calo di popolarità presso il pubblico generalista, RSS resta l'infrastruttura di distribuzione del podcasting e uno dei principali canali di scambio automatico di contenuti fra siti Web.

Storia

I precedenti

L'idea di descrivere in forma strutturata e leggibile da una macchina i contenuti di un sito precede RSS di alcuni anni. Nel 1995 Ramanathan V. Guha e altri ricercatori dell'Advanced Technology Group di Apple svilupparono il Meta Content Framework (MCF), un modello per la rappresentazione di metadati che confluirà poi nelle specifiche del RDF. Nel 1997 Microsoft propose il Channel Definition Format (CDF), impiegato nella tecnologia push di Internet Explorer 4, mentre Dave Winer della UserLand Software pubblicava il proprio sito in un formato XML denominato scriptingNews.

RSS 0.90 e My Netscape Network

La prima versione di RSS fu pubblicata da Netscape il 15 marzo 1999, su specifica scritta da Ramanathan V. Guha, per alimentare il portale web My Netscape Network. La sigla stava allora per RDF Site Summary e il formato era una applicazione di RDF: consentiva ai fornitori di contenuti di esporre titoli e collegamenti degli articoli, che il portale raccoglieva e mostrava ai propri utenti registrati. Un documento RSS 0.90 non poteva superare gli 8 kilobyte, conteneva un solo canale e al massimo quindici notizie.

L'adesione fu rapida e ampia. Il 10 luglio 1999 Netscape pubblicò la versione 0.91, redatta da Dan Libby, che abbandonava RDF in favore di XML puro e introduceva una DTD con le entità carattere di HTML. La semplificazione era deliberata: il modello RDF era considerato troppo complesso per l'uso che se ne faceva.

La scissione del 2000

Netscape, assorbita da AOL, abbandonò progressivamente il progetto e chiuse l'aggregatore di My Netscape Network. Il formato fu però adottato dalla comunità dei blogger, e il 9 giugno 2000 UserLand Software pubblicò una propria versione 0.91, curata da Dave Winer, priva della DTD di Netscape.

La duplicazione della stessa sigla di versione da parte di due soggetti diversi, insieme al disaccordo sull'opportunità di tornare a RDF, provocò una scissione. Un gruppo di sviluppatori costituì l'RSS-DEV Working Group, presieduto da Rael Dornfest, che il 6 dicembre 2000 pubblicò RSS 1.0: un formato nuovamente conforme a RDF, esteso tramite namespace XML e vocabolari di metadati come il Dublin Core. Fra gli autori figurano Dan Brickley, Ramanathan V. Guha, Eric Miller e Aaron Swartz.

Contrariamente a un'attribuzione diffusa, RSS 1.0 non è una specifica del W3C: il documento è firmato e pubblicato dagli autori del gruppo di lavoro, con una propria nota di copyright, e non ha mai seguito il processo di raccomandazione del Consorzio. Il W3C non ha mai standardizzato alcuna versione di RSS; il legame è indiretto, in quanto RSS 1.0 si conforma alla specifica RDF, che è invece una raccomandazione del W3C.

Diciannove giorni dopo, il 25 dicembre 2000, UserLand rispose con RSS 0.92, evoluzione del proprio ramo XML, che rimuoveva diversi limiti della 0.91, ammetteva HTML nel campo della descrizione e introduceva l'elemento <enclosure>. Le successive bozze 0.93 e 0.94, del 2001 e del 2002, non furono mai pubblicate come versioni ufficiali e non compaiono nella cronologia mantenuta dall'RSS Advisory Board.

RSS 2.0 e il passaggio a Harvard

Nell'agosto 2002 UserLand pubblicò RSS 2.0, erede diretto del ramo 0.9x. La novità principale è il pieno supporto ai namespace XML, che rende il formato estendibile senza modificarne il nucleo, insieme a nuovi elementi come <author>, <comments>, <guid> e <ttl>. Il numero di versione fu portato a 2.0 proprio per segnalare che il formato di base era considerato concluso: le estensioni sarebbero avvenute per moduli.

Il 15 luglio 2003 UserLand cedette il copyright della specifica al Berkman Center for Internet & Society della Harvard Law School, che la ripubblicò sotto licenza Creative Commons Attribuzione-Condividi allo stesso modo. Contestualmente Winer costituì con Brent Simmons e Jon Udell l'RSS Advisory Board, l'organismo che da allora cura la specifica: dieci revisioni successive hanno chiarito punti ambigui senza modificare il formato, fino alla 2.0.11 del 30 marzo 2009, tuttora corrente. Nel 2008 anche Netscape trasferì all'Advisory Board le specifiche 0.90 e 0.91.

La nascita di Atom

Nel giugno 2003 Sam Ruby aprì un wiki per discutere la progettazione di «una voce di log ben formata», raccogliendo gli sviluppatori insoddisfatti tanto della frammentazione tecnica quanto delle controversie sulla titolarità del formato. Il progetto, inizialmente chiamato Echo, prese il nome di Atom e nel giugno 2004 fu portato all'IETF, dove il gruppo di lavoro atompub venne presieduto da Tim Bray e Paul Hoffman.

Nel dicembre 2005 l'Atom Syndication Format fu pubblicato come standard proposto nella RFC 4287, seguito nell'ottobre 2007 dall'Atom Publishing Protocol nella RFC 5023. Rispetto a RSS 2.0, Atom definisce un modello dati esplicito, impone le marche temporali nel formato RFC 3339 anziché RFC 822, consente di indicare la lingua di ogni singolo elemento tramite l'attributo xml:lang e distingue in modo non ambiguo il testo semplice dal contenuto marcato.

Diffusione, declino e persistenza

Fra il 2004 e il 2006 RSS raggiunse il pubblico generalista. Nel settembre 2004 Mozilla Firefox introdusse un'icona quadrata arancione, disegnata da Stephen Horlander, per segnalare la presenza di un feed; nel dicembre 2005 i team di Internet Explorer e Outlook annunciarono di adottarla, e pochi mesi dopo fece lo stesso Opera. L'icona divenne così il segno convenzionale dei feed, sostituendo la pluralità di pulsanti e diciture testuali usati fino ad allora.

La diffusione presso gli utenti finali restò tuttavia circoscritta. Secondo le rilevazioni di Forrester Research, la quota di adulti statunitensi che utilizzavano feed RSS almeno una volta a settimana passò da circa il 7% del 2008 a poco più del 4% del 2012. Il 13 marzo 2013 Google annunciò la chiusura di Google Reader, allora il lettore di feed più diffuso, motivandola con il calo di utilizzo; il servizio fu dismesso il 1º luglio successivo, nonostante petizioni che raccolsero decine di migliaia di firme. L'episodio è comunemente indicato come lo spartiacque della popolarità di RSS presso il grande pubblico.

Il formato non è però scomparso: resta lo strumento di distribuzione universale del podcasting, è impiegato dagli aggregatori di notizie e dai sistemi di monitoraggio, e ha conosciuto una nuova attenzione con la diffusione di piattaforme che rifiutano la mediazione degli algoritmi delle reti sociali.

Versioni e compatibilità

I due rami

Le versioni di RSS appartengono a due famiglie tecnicamente distinte e non interoperabili.

Il ramo Netscape–UserLand (0.91, 0.92, 2.0) è XML puro: la radice è l'elemento <rss>, dotato di attributo version, e la struttura è deliberatamente semplice. È il ramo di gran lunga più diffuso.

Il ramo RDF (0.90 e 1.0) è un'applicazione di RDF: la radice è <rdf:RDF> e il documento è al tempo stesso un feed e un grafo di asserzioni interrogabile con gli strumenti del Web semantico. RSS 1.0 è estendibile per moduli senza toccare il nucleo del formato: è questa la differenza sostanziale rispetto all'altro ramo, che alla stessa esigenza ha risposto più tardi con i namespace XML.

I due rami condividono il vocabolario di base — un canale contenente una serie di elementi — ma non la sintassi, e un documento dell'uno non è un documento valido dell'altro. La maggior parte dei lettori di feed li interpreta comunque entrambi, insieme ad Atom.

Prospetto delle versioni

DataVersionePubblicata daAutoreModello
15 marzo 19990.90NetscapeRamanathan V. GuhaRDF
10 luglio 19990.91NetscapeDan LibbyXML con DTD
9 giugno 20000.91UserLand SoftwareDave WinerXML
6 dicembre 20001.0RSS-DEV Working Groupgruppo di lavoroRDF
25 dicembre 20000.92UserLand SoftwareDave WinerXML
19 agosto 20022.0UserLand SoftwareDave WinerXML con namespace
15 luglio 20032.0.1Berkman Center, HarvardDave WinerXML con namespace
30 marzo 20092.0.11 (corrente)RSS Advisory BoardRSS Advisory BoardXML con namespace

Fonte: cronologia dell'RSS Advisory Board. Le bozze 0.93 e 0.94 non vi compaiono in quanto mai pubblicate come versioni ufficiali.

La questione della compatibilità

La coesistenza di più versioni con numerazioni sovrapposte ha prodotto un problema di compatibilità a lungo dibattuto. Le dichiarazioni di retrocompatibilità contenute nelle specifiche sono state contestate: nel febbraio 2004 lo sviluppatore Mark Pilgrim pubblicò un'analisi comparata, ampiamente citata, in cui documentava le modifiche incompatibili introdotte da ciascuna versione e concludeva polemicamente che le versioni di RSS reciprocamente incompatibili non erano sette, come si sosteneva allora, ma nove.

Fra le divergenze rilevate:

  • l'elemento <hour> contenuto in <skipHours> assume valori da 0 a 23 nelle specifiche Netscape e in RSS 2.0.1, ma da 1 a 24 nel ramo UserLand precedente;
  • l'elemento textinput di Netscape è scritto textInput da UserLand: essendo XML sensibile alle maiuscole, si tratta di due elementi diversi;
  • la rimozione della DTD da parte di UserLand invalida le entità carattere HTML ammesse da Netscape;
  • il contenuto di <description> passa da testo semplice in RSS 0.91 a HTML in RSS 0.92, senza che il numero di versione segnali il cambiamento semantico;
  • la bozza 0.94 introdusse un attributo type su <description> per dichiarare il tipo MIME del contenuto; RSS 2.0 lo eliminò, considerandolo fonte di confusione, lasciando però indeterminato il modo in cui un programma debba stabilire se una descrizione contenga HTML.

Le revisioni successive alla 2.0 sono state pubblicate mantenendo invariato il numero di versione dichiarato nei documenti, che resta 2.0: un programma non può quindi distinguere dal solo feed a quale revisione della specifica esso si conformi. Per attenuare questi problemi l'RSS Advisory Board ha pubblicato nel 2007 il RSS Best Practices Profile, una raccolta di raccomandazioni sull'uso degli elementi ambigui.

Le versioni a confronto

La sequenza che segue documenta, versione per versione, come si presenta lo stesso feed di esempio e quali modifiche incompatibili sono state introdotte a ogni passaggio.

RSS 0.90

La versione originale di Netscape, conforme a RDF, con la radice <rdf:RDF>:

<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns="http://my.netscape.com/rdf/simple/0.9/">
 <channel>
  <title>Mozilla Dot Org</title>
  <link>http://www.mozilla.org</link>
  <description>the Mozilla Organization web site</description>
 </channel>
 <image>
  <title>Mozilla</title>
  <url>http://www.mozilla.org/images/logo.gif</url>
  <link>http://www.mozilla.org</link>
 </image>
 <item>
  <title>New Status Updates</title>
  <link>http://www.mozilla.org/status/</link>
 </item>
</rdf:RDF>

RSS 0.91 (Netscape)

Netscape abbandonò la sintassi RDF e riprogettò il formato come XML puro, aggiungendo una DTD che definiva le entità carattere ammesse. La versione è quindi deliberatamente incompatibile con la 0.90:

<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd">
<rss version="0.91">
 <channel>
  <title>Example Channel</title>
  <link>http://example.com/</link>
  <description>an example feed</description>
  <language>en</language>
  <rating>(PICS-1.1 "http://www.classify.org/safesurf/" l r (SS~~000 1))</rating>
  <textinput>
   <title>Search this site:</title>
   <description>Find:</description>
   <name>q</name>
   <link>http://example.com/search</link>
  </textinput>
  <skipHours>
   <hour>0</hour>
  </skipHours>
  <item>
   <title>1 &lt; 2</title>
   <link>http://example.com/1_less_than_2.html</link>
   <description>1 &lt; 2, 3 &lt; 4.
   In HTML, &lt;b&gt; starts a bold phrase
   and you start a link with &lt;a href=
   </description>
  </item>
 </channel>
</rss>

RSS 0.91 (UserLand)

Nel giugno 2000 UserLand pubblicò con lo stesso numero di versione una specifica propria, sostituendo le note di copyright di Netscape. Le differenze rispetto alla 0.91 di Netscape sono tre: l'elemento <hour> contenuto in <skipHours> passa dall'intervallo 0–23 a 1–24; l'elemento textinput diventa textInput, che essendo XML sensibile alle maiuscole è un elemento diverso; la DTD viene rimossa, e con essa la validità delle 96 entità carattere che ammetteva.

<rss version="0.91">
 <channel>
  <title>Example Channel</title>
  <link>http://example.com/</link>
  <description>an example feed</description>
  <language>en</language>
  <rating>(PICS-1.1 "http://www.classify.org/safesurf/" l r (SS~~000 1))</rating>
  <textInput>
   <title>Search this site:</title>
   <description>Find:</description>
   <name>q</name>
   <link>http://example.com/search</link>
  </textInput>
  <skipHours>
   <hour>24</hour>
  </skipHours>
  <item>
   <title>1 &lt; 2</title>
   <link>http://example.com/1_less_than_2.html</link>
   <description>1 &lt; 2, 3 &lt; 4.
   In HTML, &lt;b&gt; starts a bold phrase
   and you start a link with &lt;a href=
   </description>
  </item>
 </channel>
</rss>

RSS 1.0

Pubblicata dall'RSS-DEV Working Group nel dicembre 2000, torna alla sintassi RDF e adotta un namespace XML del tutto diverso da quello della 0.90. L'indice degli elementi è dichiarato nel canale tramite <rdf:Seq>, separatamente dagli elementi stessi:

<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns="http://purl.org/rss/1.0/">
 <channel rdf:about="http://www.example.org/feed">
  <title>Example Dot Org</title>
  <link>http://www.example.org</link>
  <description>the Example Organization web site</description>
  <image rdf:resource="http://www.example.org/images/logo.gif"/>
  <items>
   <rdf:Seq>
    <rdf:li resource="http://www.example.org/status/"/>
   </rdf:Seq>
  </items>
 </channel>
 <image rdf:about="http://www.example.org/images/logo.gif">
  <title>Example</title>
  <url>http://www.example.org/images/logo.gif</url>
  <link>http://www.example.org</link>
 </image>
 <item rdf:about="http://www.example.org/status/">
  <title>New Status Updates</title>
  <link>http://www.example.org/status/</link>
  <description>News about the Example project</description>
 </item>
</rdf:RDF>

RSS 0.92

Pubblicata da UserLand nel dicembre 2000, rimuove diversi limiti della 0.91 e introduce l'elemento <enclosure>. La modifica incompatibile non è visibile nella sintassi: il contenuto di <description> passa da testo semplice a HTML.

<rss version="0.92">
 <channel>
  <title>Example Channel</title>
  <link>http://example.com/</link>
  <description>an example feed</description>
  <language>en</language>
  <rating>(PICS-1.1 "http://www.classify.org/safesurf/" l r (SS~~000 1))</rating>
  <textInput>
   <title>Search this site:</title>
   <description>Find:</description>
   <name>q</name>
   <link>http://example.com/search</link>
  </textInput>
  <skipHours>
   <hour>24</hour>
  </skipHours>
  <item>
   <title>1 &lt; 2</title>
   <link>http://example.com/1_less_than_2.html</link>
   <description>1 &lt; 2, 3 &lt; 4.
   In HTML, &lt;b&gt; starts a bold phrase
   and you start a link with &lt;a href=
   </description>
  </item>
 </channel>
</rss>

Questo documento appare quasi identico all'esempio 0.91 di UserLand, ma la descrizione ha un significato diverso. Per ottenere lo stesso risultato semantico il testo va convertito così:

<rss version="0.92">
 <channel>
  <title>Example Channel</title>
  <link>http://example.com/</link>
  <description>an example feed</description>
  <language>en</language>
  <rating>(PICS-1.1 "http://www.classify.org/safesurf/" l r (SS~~000 1))</rating>
  <textInput>
   <title>Search this site:</title>
   <description>Find:</description>
   <name>q</name>
   <link>http://example.com/search</link>
  </textInput>
  <skipHours>
   <hour>24</hour>
  </skipHours>
  <item>
   <title>1 &lt; 2</title>
   <link>http://example.com/1_less_than_2.html</link>
   <description>1 &amp;lt; 2, 3 &amp;lt; 4.
   In HTML, &amp;lt;b&amp;gt; starts a bold phrase
   and you start a link with &amp;lt;a href=
   </description>
  </item>
 </channel>
</rss>

RSS 0.93

Bozza dell'aprile 2001, mai pubblicata come versione ufficiale. Mantiene la struttura della 0.92 e aggiunge l'elemento facoltativo <expirationDate>:

<rss version="0.93">
 <channel>
  <title>Example Channel</title>
  <link>http://example.com/</link>
  <description>an example feed</description>
  <language>en</language>
  <rating>(PICS-1.1 "http://www.classify.org/safesurf/" l r (SS~~000 1))</rating>
  <textInput>
   <title>Search this site:</title>
   <description>Find:</description>
   <name>q</name>
   <link>http://example.com/search</link>
  </textInput>
  <skipHours>
   <hour>24</hour>
  </skipHours>
  <item>
   <title>1 &lt; 2</title>
   <link>http://example.com/1_less_than_2.html</link>
   <description>1 &amp;lt; 2, 3 &amp;lt; 4.
   In HTML, &amp;lt;b&amp;gt; starts a bold phrase
   and you start a link with &amp;lt;a href=
   </description>
   <expirationDate>Sat, 29 Nov 2003 10:17:13 GMT</expirationDate>
  </item>
 </channel>
</rss>

RSS 0.94

Bozza dell'agosto 2002, anch'essa mai pubblicata ufficialmente. Elimina <expirationDate>, introdotto dalla 0.93, e aggiunge a <description> un attributo type con cui dichiarare il tipo MIME del contenuto. Il valore predefinito è text/html: in assenza dell'attributo il comportamento coincide con quello della 0.92.

<rss version="0.94">
 <channel>
  <title>Example Channel</title>
  <link>http://example.com/</link>
  <description>an example feed</description>
  <language>en</language>
  <rating>(PICS-1.1 "http://www.classify.org/safesurf/" l r (SS~~000 1))</rating>
  <textInput>
   <title>Search this site:</title>
   <description>Find:</description>
   <name>q</name>
   <link>http://example.com/search</link>
  </textInput>
  <skipHours>
   <hour>24</hour>
  </skipHours>
  <item>
   <title>1 &lt; 2</title>
   <link>http://example.com/1_less_than_2.html</link>
   <description type="text/plain">1 &lt; 2, 3 &lt; 4.
   In HTML, &lt;b&gt; starts a bold phrase
   and you start a link with &lt;a href=
   </description>
  </item>
 </channel>
</rss>

RSS 2.0

Pubblicata da UserLand nell'agosto 2002 a partire dalla bozza 0.94. Elimina l'elemento <rating>, ammesso da tutte le versioni precedenti, e l'attributo type su <description>, considerato fonte di confusione. La specifica stabilisce che la descrizione «può contenere o meno» HTML, senza fornire a un programma un modo per distinguere i due casi.

<rss version="2.0">
 <channel>
  <title>Example Channel</title>
  <link>http://example.com/</link>
  <description>an example feed</description>
  <language>en</language>
  <textInput>
   <title>Search this site:</title>
   <description>Find:</description>
   <name>q</name>
   <link>http://example.com/search</link>
  </textInput>
  <skipHours>
   <hour>24</hour>
  </skipHours>
  <item>
   <title>1 &lt; 2</title>
   <link>http://example.com/1_less_than_2.html</link>
   <description>1 &lt; 2, 3 &lt; 4.
   In HTML, &lt;b&gt; starts a bold phrase
   and you start a link with &lt;a href=
   </description>
  </item>
 </channel>
</rss>

Le revisioni della 2.0

Nel novembre 2002 la specifica fu rivista riportando l'intervallo di <hour> da 1–24 a 0–23, come nelle versioni Netscape; nel gennaio 2003 una seconda revisione reintrodusse l'elemento <rating>. In entrambi i casi il documento pubblicato sostituì il precedente e il numero di versione dichiarato nei feed rimase 2.0:

<rss version="2.0">
 <channel>
  <title>Example Channel</title>
  <link>http://example.com/</link>
  <description>an example feed</description>
  <language>en</language>
  <rating>(PICS-1.1 "http://www.classify.org/safesurf/" l r (SS~~000 1))</rating>
  <textInput>
   <title>Search this site:</title>
   <description>Find:</description>
   <name>q</name>
   <link>http://example.com/search</link>
  </textInput>
  <skipHours>
   <hour>0</hour>
  </skipHours>
  <item>
   <title>1 &lt; 2</title>
   <link>http://example.com/1_less_than_2.html</link>
   <description>1 &lt; 2, 3 &lt; 4.
   In HTML, &lt;b&gt; starts a bold phrase
   and you start a link with &lt;a href=
   </description>
  </item>
 </channel>
</rss>

Ne consegue che un feed dichiarato {{{code}}} contenente <hour>24</hour>, valido secondo la specifica pubblicata fino al 10 novembre 2002, risultava non valido secondo quella dell'11 novembre, senza che nulla nel documento lo segnalasse.

Struttura del formato

Elementi del canale e degli item

Nonostante le differenze fra le versioni, tutti i documenti RSS condividono la stessa impostazione:

  • un elemento <channel>, che descrive la fonte nel suo complesso: titolo, collegamento al sito, descrizione, e opzionalmente lingua, data di pubblicazione, informazioni sul copyright, immagine;
  • una sequenza di elementi <item>, ciascuno corrispondente a un singolo contenuto e dotato di propri titolo, collegamento, descrizione, autore, data e identificatore.

In RSS 2.0 tutti gli elementi dell'item sono facoltativi, purché ne sia presente almeno uno fra <title> e <description>. L'elemento <guid> (globally unique identifier) fornisce un identificatore stabile che consente ai lettori di riconoscere i contenuti già visti anche quando il collegamento cambia.

Esempio

Un feed RSS 2.0 minimo ma completo:

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Esempio</title>
    <link>https://www.esempio.it/</link>
    <description>Un feed di esempio</description>
    <language>it</language>
    <lastBuildDate>Mon, 15 Jun 2026 09:00:00 +0200</lastBuildDate>
    <item>
      <title>Titolo dell'articolo</title>
      <link>https://www.esempio.it/articolo</link>
      <description>Riassunto dell'articolo.</description>
      <pubDate>Mon, 15 Jun 2026 08:30:00 +0200</pubDate>
      <guid isPermaLink="true">https://www.esempio.it/articolo</guid>
    </item>
  </channel>
</rss>

Lo stesso contenuto espresso in RSS 1.0 richiede la sintassi RDF, con l'indice degli elementi dichiarato separatamente dagli elementi stessi:

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns="http://purl.org/rss/1.0/">
  <channel rdf:about="https://www.esempio.it/feed">
    <title>Esempio</title>
    <link>https://www.esempio.it/</link>
    <description>Un feed di esempio</description>
    <items>
      <rdf:Seq>
        <rdf:li resource="https://www.esempio.it/articolo"/>
      </rdf:Seq>
    </items>
  </channel>
  <item rdf:about="https://www.esempio.it/articolo">
    <title>Titolo dell'articolo</title>
    <link>https://www.esempio.it/articolo</link>
    <description>Riassunto dell'articolo.</description>
  </item>
</rdf:RDF>

Enclosure e podcasting

L'elemento <enclosure>, introdotto in RSS 0.92, associa a un item un file esterno indicandone l'indirizzo, la dimensione in byte e il tipo MIME:

<enclosure url="https://www.esempio.it/episodio.mp3"
           length="12216320" type="audio/mpeg"/>

L'elemento nasce da una proposta di Tristan Louis, implementata da Winer nel dicembre 2000 su sollecitazione di Adam Curry, che sosteneva l'uso di RSS per la distribuzione di file audio. L'11 gennaio 2001 Winer ne diede la prima dimostrazione pubblica distribuendo una registrazione dei Grateful Dead attraverso il proprio feed.

La funzionalità restò per anni priva di pubblico. Nell'ottobre 2003 Curry pubblicò RSS2iPod, uno script che estraeva i file allegati da un feed e li trasferiva su un iPod; il 12 febbraio 2004 il giornalista Ben Hammersley coniò sul Guardian il termine podcasting in un articolo sulla diffusione della radio amatoriale in rete. Da allora RSS è il meccanismo su cui si fonda l'intero ecosistema dei podcast: le principali piattaforme di distribuzione non ospitano i contenuti, ma si limitano a indicizzare feed RSS pubblici, arricchiti dalle estensioni proprietarie introdotte da Apple nel 2005 per iTunes.

Estensioni tramite namespace

Dalla versione 2.0 RSS è estendibile dichiarando namespace XML, senza modificare il nucleo del formato. Le estensioni più diffuse sono:

  • Media RSS (namespace http://search.yahoo.com/mrss/), nato in Yahoo! e oggi mantenuto dall'RSS Advisory Board, per descrivere contenuti multimediali con miniature, durate, licenze e classificazioni;
  • le estensioni iTunes per i podcast, che aggiungono categoria, autore, durata, copertina ed episodio;
  • il Dublin Core, per metadati bibliografici;
  • il Podcast Namespace promosso dal progetto Podcasting 2.0 a partire dal 2020, per funzionalità quali trascrizioni, capitoli e finanziamento diretto.

Tipo MIME

Il tipo di contenuto convenzionalmente usato per i feed RSS è application/rss+xml. A differenza di application/atom+xml, registrato presso la IANA contestualmente alla pubblicazione della RFC 4287, il tipo di RSS non ha mai completato la procedura di registrazione: due proposte in forma di Internet Draft sono decadute senza esito, in assenza di un ente riconosciuto che potesse sponsorizzarne l'iter. Il tipo è quindi universalmente impiegato ma formalmente non registrato.

Uso

Individuazione automatica dei feed

Un sito può segnalare i propri feed inserendo nell'intestazione delle pagine HTML un elemento <link>, che consente a browser e aggregatori di rilevarli senza intervento dell'utente. La convenzione, formalizzata dall'RSS Advisory Board nel 2006, prevede la forma:

<link rel="alternate" type="application/rss+xml" title="RSS"
      href="https://www.esempio.it/feed" />

Aggregatori

I programmi che consumano feed si distinguono in due categorie. I lettori di feed scaricano periodicamente i feed a cui l'utente è iscritto e ne presentano i contenuti in ordine cronologico, in un'interfaccia simile a quella della posta elettronica; possono essere applicazioni locali, estensioni del browser o servizi Web. Gli aggregatori in senso stretto raccolgono contenuti da molte fonti e li riorganizzano secondo criteri propri — argomento, rilevanza, popolarità — costituendo la base tecnica di numerosi servizi di rassegna stampa e monitoraggio.

Poiché RSS si basa su interrogazione periodica (polling), un aggregatore deve scaricare ripetutamente i feed per accorgersi delle novità. Gli elementi <ttl> e <skipHours>, e a livello di protocollo le intestazioni HTTP condizionali, servono a limitare il traffico che ne deriva.

Formati alternativi e complementari

Note

Annotazioni

  1. ↑ La cronologia ufficiale dell'RSS Advisory Board data la pubblicazione di RSS 2.0 al 19 agosto 2002; diverse ricostruzioni indicano invece il settembre dello stesso anno.

Fonti

  1. 1 2 3 4 5 6 7 8 9 (EN) RSS History, su rssboard.org, RSS Advisory Board. URL consultato il 23 agosto 2026.
  2. 1 2 3 4 (EN) RSS 2.0 Specification (version 2.0.11), su rssboard.org, RSS Advisory Board, 30 marzo 2009. URL consultato il 23 agosto 2026.
  3. 1 2 3 4 (EN) RSS-DEV Working Group, RDF Site Summary (RSS) 1.0, su web.resource.org, 6 dicembre 2000. URL consultato il 23 agosto 2026 (archiviato dall'url originale il 22 ottobre 2008).
  4. 1 2 (EN) Mark Nottingham e Robert Sayre, RFC 4287 – The Atom Syndication Format, su rfc-editor.org, IETF, dicembre 2005. URL consultato il 23 agosto 2026.
  5. ↑ (EN) RSS 0.90 Specification, su rssboard.org, RSS Advisory Board. URL consultato il 23 agosto 2026.
  6. ↑ (EN) RSS 0.91 Specification (Netscape), su rssboard.org, RSS Advisory Board. URL consultato il 23 agosto 2026.
  7. 1 2 (EN) RSS 0.92 Specification, su rssboard.org, RSS Advisory Board. URL consultato il 23 agosto 2026.
  8. ↑ (EN) Dave Winer, Berkman Hosts RSS 2.0 spec, su DaveNet, 28 luglio 2003. URL consultato il 23 agosto 2026.
  9. ↑ (EN) RSS 2.0 Specification Published by Berkman Center Under Creative Commons License, su Cover Pages, 22 luglio 2003. URL consultato il 23 agosto 2026.
  10. ↑ (EN) RSS 0.90, 0.91 Moving to RSS Advisory Board, su rssboard.org, RSS Advisory Board, 22 gennaio 2008. URL consultato il 23 agosto 2026.
  11. ↑ (EN) Atom Publishing Format and Protocol (atompub) Charter (TXT), su ietf.org, IETF. URL consultato il 23 agosto 2026.
  12. ↑ (EN) RFC 5023 – The Atom Publishing Protocol, su rfc-editor.org, IETF, ottobre 2007. URL consultato il 23 agosto 2026.
  13. ↑ (EN) RSS 2.0 and Atom 1.0 Compared, su Atom Wiki. URL consultato il 23 agosto 2026.
  14. ↑ (EN) Proposal: Support the Common Feed Icon, su rssboard.org, RSS Advisory Board. URL consultato il 23 agosto 2026.
  15. ↑ (EN) Feed Icon Guidelines, su mozilla.org, Mozilla Foundation. URL consultato il 23 agosto 2026.
  16. ↑ (EN) The Data Digest: Usage Of RSS Feeds, su forrester.com, Forrester Research, 15 marzo 2013. URL consultato il 23 agosto 2026.
  17. ↑ (EN) Google Reader shutting down on July 1, in CNN Business, 14 marzo 2013. URL consultato il 23 agosto 2026.
  18. 1 2 3 (EN) Mark Pilgrim, The myth of RSS compatibility, su dive into mark, 4 febbraio 2004. URL consultato il 23 agosto 2026 (archiviato dall'url originale il 9 aprile 2006).
  19. ↑ (EN) RSS Best Practices Profile, su rssboard.org, RSS Advisory Board. URL consultato il 23 agosto 2026.
  20. ↑ (EN) RSS Enclosures Use Case, su rssboard.org, RSS Advisory Board. URL consultato il 23 agosto 2026.
  21. ↑ (EN) Ben Hammersley, Audible revolution, in The Guardian, 12 febbraio 2004. URL consultato il 23 agosto 2026.
  22. ↑ (EN) Media RSS Specification, version 1.5.1, su rssboard.org, RSS Advisory Board, 11 dicembre 2009. URL consultato il 23 agosto 2026.
  23. ↑ (EN) Mark Nottingham, The application/rss+xml Media Type, su datatracker.ietf.org, IETF. URL consultato il 23 agosto 2026.
  24. ↑ (EN) RSS Autodiscovery, version 1.0, su rssboard.org, RSS Advisory Board, 27 novembre 2006. URL consultato il 23 agosto 2026.
  25. ↑ (EN) Manton Reece e Brent Simmons, Announcing JSON Feed, su jsonfeed.org, 17 maggio 2017. URL consultato il 23 agosto 2026.
  26. ↑ (EN) WebSub – W3C Recommendation, su w3.org, W3C, 23 gennaio 2018. URL consultato il 23 agosto 2026.

Bibliografia

Voci correlate

Altri progetti

Collegamenti esterni

Specifiche

Storia e analisi

Studi e dati

Articoli

Controllo di autoritàLCCN (EN) sh2005002920 · GND (DE) 4734489-1 · BNE (ES) XX558871 (data) · J9U (EN, HE) 987007547139705171
  Portale Internet: accedi alle voci di Wikipedia che trattano di internet