Esta página explica o que é o RSS. Você ainda não criará seus próprios arquivos RSS, mas você verá como o RSS é comumente usado e exemplos simples de arquivos RSS para uso comum. Você também acompanhará um pouco da história do RSS.
O que é RSS?
As versões de RSS mais populares são as baseadas na linguagem de marcação XML usada para publicação (syndication). (Apesar dos formatos RSS baseados em RDF existirem. Os antigos RSS 0.90 e RSS 1.0.) Os usos mais comuns do RSS syndication são para publicações de web sites de notícias, blogs, rádio de Internet e programação televisiva para Internet.
Este tutorial ensina o RSS 2.0. Mas se esforça em apontar as diferenças com as outras versões de RSS.
O RSS é praticamente nunca escrito à mão, mas quase sempre criado por softwares de servidores (normalmente escritos em uma linguagem como PHP, Java, C# ou Python) nos servidores web. Contudo, para que possamos aprender sobre o RSS nós criaremos os scripts RSS à mão.
Uma breve história do RSS
Em março de 1999 a Netscape lançou o RSS 0.90. Era muito diferente do RSS de hoje. Não era realmente um formato para publicação, mas um formato que fornecia um sumário de um website. Na verdade, naquele tempo, o RSS não atendia por Really Simple Syndication mas por Rich Site Summary.
Em julho de 1999 o RSS 0.91 da Netscape foi lançado. Como o RSS 0.90, o RSS 0.91 da Netscape também era de um formato para fornecimento de um sumário de um website e não realmente um formato de publicação (como é hoje). O RSS 0.91 da Netscape foi criado para simplificar as coisas. O RSS 0.90 era baseado em RDF. (O que muitos acharam ser excessivamente complexo). Já o RSS 0.91 da Netscape era apenas baseado em XML e acrescentou um DTD para permitir diversas entities (comumente encontradas em HTML).
E nesse ponto a Netscape tornou o RSS 0.90 baseado em RDF obsoleto e disse a todos que usassem o RSS 0.91 da Netscape que era baseado no XML.
Em junho de 2000 o RSS 0.91 da Userland foi lançado. (E, sim, isso significa que havia 2 diferentes versões de RSS 0.91). A diferença entre as 2 diferentes versões de RSS 0.91 — da Netscape e da Userland — é que a da Userland não possuia o DTD que o Netscape trazia; e por isso, não possuía os entities extras que o Netscape tinha (comumente encontradas em HTML). Fora isso entretanto, eram a mesma coisa. Tecnicamente falando, o RSS 0.91 da Userland era um subset do RSS 0.91 da Netscape.
Em dezembro de 2000 o grupo RSS-DEV lançou o RSS 1.0. Essa versão não era mais puramente baseado em XML, mas baseado em RDF (como o original, e agora obsoleto RSS 0.90). O grupo RSS-DEV mudou o significado de RSS, e transformou-o em RDF Site Summary. (Ao menos, era assim que atendia a versão do RSS deles.)
Então aqui tínhamos o RSS 0.91 da Netscape, o RSS 0.91 da Userland, e o RSS 1.0 do grupo RSS-DEV.
Mais tarde, ainda em dezembro, a Userland lançou o RSS 0.92. O RSS 0.92 deveria substituir o RSS 0.91 deles. (Se você perceber, entretanto, os números das versões dos RSS ficaram bagunçados neste ponto, pois o RSS 0.92 era mais novo que o RSS 1.0.)
E aqui tínhamos o RSS 0.91 da Netscape, o RSS 1.0 do grupo RSS-DEV, e o RSS 0.92 da Userland.
Em abril de 2001 a Userland lançou um beta para o RSS 0.93. Essa versão do RSS nunca foi transformado em "final" e permaneceu beta nunca tornando-se um substituto para o RSS 0.92.
Em agosto de 2002 a Userland lançou o beta do RSS 0.94. E assim como o RSS 0.93, essa versão nunca foi feita "final" e permaneceu beta, nunca tornando-se um substituto para o RSS RSS 0.92.
Então, aqui ainda tínhamos o RSS 0.91 da Netscape, o RSS 1.0 do grupo RSS-DEV, e o RSS 0.92 da Userland. (Apesar de alguns estarem usando RSS 0.93 e RSS 0.94 mesmo que não devessem.)
Em setembro de 2002 a Userland lança o RSS 2.0. O RSS 2.0 deveria substituir o RSS 0.92 (e os betas RSS 0.93 e RSS 0.94 que ninguém deveria estar usando). A Userland pulou esses números de versão até o 2.0 porque o RSS-DEV já havia usado o 1.0 em seu RSS 1.0 baseado em RDF.
Neste ponto tínhamos o RSS 0.91 da Netscape, o RSS 1.0 do grupo RSS-DEV e o RSS 2.0 da Userland.
Agora, a história não acaba simplesmente lá. Uma vez em novembro de 2002 e outra em janeiro de 2003, o RSS 2.0 foi modificado de sua especificação original pela Userland. E apesar desses serem diferentes, foram todos chamados de RSS 2.0 no elemento <rss>.
E aqui, nesse ponto, nós ainda temos o RSS 0.91 da Netscape (uma vez que a Netscape nunca o tornou obsoleto) apesar da maioria das pessoas não usarem mais. Elas usavam tanto o RSS 1.0 baseado no RDF como o RSS 2.0 baseado no XML. Com o RSS 2.0 baseado no XML parecendo ser o mais popular. (Esse tutorial usa o RSS 2.0.)
Como o RSS é utilizado hoje
Hoje, o RSS é principalmente usado para publicação (syndication). Syndication é o processo de dizer aos outros que você tem conteúdo para eles consumirem. Em outras palavras, quando você publica (syndicate), você está dizendo a todos algo como: "Ei pessoal, eu tenho artigos que gostaria que todos viessem e lessem. Basta se inscrever ao meu RSS feed e você poderá acessar os mais recentes todas as vezes."
NOTA: Se você fornecer um RSS não protegido por password, você estará implicitamente dando a todos permissão para usar o conteúdo em seu RSS feed em todos os meios que eles verem que se encaixa. Eles podem ler. Eles podem fazer uma cópia local. Podem compartilhar essa cópia local. Podem pôr em seus websites. Podem até mesmo republicar. E mais.
Se você não quer que nada disso aconteça então não ponha um RSS feed não protegido por password. (E não torne o password público, claro.)
Os websites de notícias usam RSS para fornecer a todos uma lista de seus mais recentes artigos. Por exemplo:
<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Example News Site</title>
<description>This is an Example News Site.</description>
<lastBuildDate>Wed, 27 Jul 2005 00:30:30 -0700</lastBuildDate>
<link>https://news.example.com/</link>
<item>
<title>News Flash: I Like Bread</title>
<guid isPermaLink="false">4d4a0a12-f188-4c97-908b-eea27213c2fe</guid>
<pubDate>Wed, 27 Jul 2005 00:30:30 -0700</pubDate>
<link>https://news.example.com/artcle/554</link>
</item>
<item>
<title>Big News Today: Birds Fly</title>
<guid isPermaLink="false">c4a63f09-b45b-466b-8773-6ff264001ab7</guid>
<pubDate>Tue, 19 Jul 2005 04:32:51 -0700</pubDate>
<link>https://news.example.com/artcle/553</link>
</item>
<item>
<title>Fire is Hot</title>
<guid isPermaLink="false">c1795324-d5ea-44fa-95b1-b5ce2090d4f1</guid>
<pubDate>Sun, 15 May 2005 13:02:08 -0700</pubDate>
<link>https://news.example.com/artcle/552</link>
</item>
</channel>
</rss>
Os blogs usam o RSS para fornecer a todos uma lista de seus posts mais novos. Por exemplo:
<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Joe Blow's Blog</title>
<description>This is the Weblog of Joe Blow</description>
<lastBuildDate>Sun, 15 May 2005 13:02:08 -0500</lastBuildDate>
<link>https://joe-blow.example.net/</link>
<item>
<title>I Be Blogging...</title>
<guid>https://joe-blow.example.net/log/21</guid>
<pubDate>Sun, 15 May 2005 13:02:08 -0500</pubDate>
<link>https://joe-blow.example.net/log/21</link>
</item>
<item>
<title>I am so SMRT</title>
<guid>https://joe-blow.example.net/log/20</guid>
<pubDate>Sat, 14 May 2005 22:19:18 -0500</pubDate>
<link>https://joe-blow.example.net/log/20</link>
</item>
<item>
<title>Huh?</title>
<guid>https://joe-blow.example.net/log/19</guid>
<pubDate>Sat, 14 May 2005 09:55:59 -0500</pubDate>
<link>https://joe-blow.example.net/log/19</link>
</item>
<item>
<title>Black Cat Spotted</title>
<guid>https://joe-blow.example.net/log/18</guid>
<pubDate>Fri, 13 May 2005 13:13:13 -0500</pubDate>
<link>https://joe-blow.example.net/log/18</link>
</item>
</channel>
</rss>
Aqueles que criam Internet Rádio usam o RSS para permitir aos usuários ouvirem seus shows (broadcatching). Por exemplo:
<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Joe's IPradio Show</title>
<description>The best IPradio Show on the Internet, staring Joe!</description>
<lastBuildDate>Mon, 15 Aug 2005 16:12:37 -0400</lastBuildDate>
<link>https://joe.ipradio.example.net/</link>
<item>
<title>I C UR Tan Line</title>
<guid>https://joe.ipradio.example.net/show/55</guid>
<pubDate>Mon, 15 Aug 2005 16:11:57 -0400</pubDate>
<enclosure url="https://joe.ipradio.example.net/show/55"
length="4487216"
type="application/ogg"
/>
</item>
<item>
<title>Car Care for Car Fanatics</title>
<guid>https://joe.ipradio.example.net/show/54</guid>
<pubDate>Mon, 8 Aug 2005 13:12:12 -0400</pubDate>
<enclosure url="https://joe.ipradio.example.net/show/54"
length="4892178"
type="audio/x-mp3"
/>
</item>
<item>
<title>Best Beaches in BC</title>
<guid>https://joe.ipradio.example.net/show/53</guid>
<pubDate>Mon, 1 Aug 2005 18:22:14 -0400</pubDate>
<enclosure url="https://joe.ipradio.example.net/show/53"
length="3984215"
type="application/ogg"
/>
</item>
</channel>
</rss>
NOTA: Ouvir um Broadcatching de um Internet Rádio é também chamado de Podcasting, IPradio, e Audio Blogging.
Aqueles que criam programas televisivos para Internet usam o RSS para permitir aos usuários transmitir seus shows (broadcatch). Por exemplo:
<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Kate's IPTV Show</title>
<description>Watch it or else! You know you want to.</description>
<lastBuildDate>Tue, 23 Aug 2005 21:02:05 -0800</lastBuildDate>
<link>https://katetv.example.com/</link>
<item>
<title>This is Fun</title>
<guid>https://katetv.example.com/show/4</guid>
<pubDate>Tue, 23 Aug 2005 21:02:05 -0800</pubDate>
<enclosure url="https://katetv.example.com/show/4"
length="1911146"
type="application/ogg"
/>
</item>
<item>
<title>Watch This</title>
<guid>https://katetv.example.com/show/3</guid>
<pubDate>Tue, 16 Aug 2005 16:11:57 -0400</pubDate>
<enclosure url="https://katetv.example.com/show/3"
length="1387442"
type="application/ogg"
/>
</item>
<item>
<title>It is me again</title>
<guid>https://katetv.example.com/show/2</guid>
<pubDate>Tue, 9 Aug 2005 13:12:12 -0400</pubDate>
<enclosure url="https://katetv.example.com/show/2"
length="1894877"
type="video/mpeg"
/>
</item>
<item>
<title>Hello</title>
<guid>https://katetv.example.com/show/1</guid>
<pubDate>Tue, 2 Aug 2005 18:22:14 -0400</pubDate>
<enclosure url="https://katetv.example.com/show/1"
length="17442215"
type="application/ogg"
/>
</item>
</channel>
</rss>
O leitor observador deve ter percebido que os exemplos dos websites de notícias e dos blogs eram do mesmo tipo de RSS. Também que os exemplos de Internet Rádio e dos programas de TV para Internet eram do mesmo tipo de RSS. Na verdade, a única diferença real entre os RSS de notícias/blogs e de Internet Rádio/TV para Internet é que os RSS de notícias/blogs usam o elemento <link> e os Internet Rádio/Internet TV usam o elemento <enclosure>.
NOTA: Esses exemplos de RSS são muito, muito simples. E foram desenhados para dar a você uma idéia de como o RSS se parece basicamente. Todos esses exemplos de RSS são bem mínimos. Quando você criar seus próprios RSS feeds, você provavelmente irá querer fazê-los mais complexos que esses e incluir elementos RSS adicionais fazendo uso dos vários Módulos de RSS.