What is RSS

  • Revision slug: RSS/Getting_Started/What_is_RSS
  • Revision title: What is RSS
  • Revision id: 102513
  • Created:
  • Creator: Charles
  • Is current revision? No
  • Comment Added link to RSS:Version

Revision Content

This page explains what RSS is. You will not yet be creating your own RSS files, but you will be seeing how RSS is commonly used. And seeing simple example RSS files for these common uses. You will also be getting a little history on RSS.


What is RSS?

The most popular versions of RSS are XML-based markup languages used for syndication. (Although RDF-based RSS formats exist. Namely the deprecated RSS 0.90 and RSS 1.0.) Common uses of RSS syndication are for the syndication of news web sites, of blogs, of IPradio, and of IPTV.

This tutorial teaches RSS 2.0. But makes an effort to point out issues with other versions of RSS.

RSS is almost never written by hand. But almost always created by server side software (usually written in a language like PHP, Java, C# or Python) on the web server. However, so that we can learn RSS, we will be creating RSS scripts by hand.

Short History of RSS

In March of 1999 Netscape released RSS 0.90. It was much much different than today's RSS. It wasn't really a format for syndication, but was a format for providing a summary of a website. In fact, back then, RSS did not stand for Really Simple Syndication but stood for Rich Site Summary.

In July of 1999 Netscape's RSS 0.91 was released. Like RSS 0.90, Netscape's RSS 0.91 was also a format for providing a summary of a website, and not really a syndication format (as it is today). Netscape's RSS 0.91 was created to simplify things. RSS 0.90 was RDF-based. (Which many found to be overly complex.) Netscape's RSS 0.91 was only XML-based and added a DTD to allow several entities (commonly found in HTML).

So at this point Netscape deprecated the RDF-based RSS 0.90 and told everyone to use Netscape's RSS 0.91, which was XML-based.

In June of 2000 Userland's RSS 0.91 was released. (And yes, that means that there are 2 different version of RSS 0.91.) The difference between the 2 different versions of RSS 0.91 -- Netscape's RSS 0.91 and Userland's RSS 0.91 -- is that Userland's RSS 0.91 does not have the DTD that Netscape's RSS 0.91 has; and thus doesn't have the extra entities that Netscape's RSS 0.91 (commonly found in HTML). Other than that though, they are the same. Technically speaking, Userland's RSS 0.91 is a subset of Netscape's RSS 0.91.

TODO: More history goes here


How RSS is Used Today

Today, RSS is mostly used for syndication. Syndication is the process of telling others that you have content for them to consume. In other words, when you syndicate, you are telling everyone something like: "Hey everyone, I've got articles that I want everyone to come and read. Just subscribe to my RSS feed and be able to get the latest ones all the time.".

NOTE: If you provide a non-password-protected RSS feed, you are implicitly giving everyone permission to use the contents in you RSS feed in almost any way they see fit. They can read it. The can make local copies of it. They can share that local copy. They can put it on their web site. They can even re-syndicated it. And more.

If you don't want any of that done, then don't put it in a non-password-protected RSS feed. (And don't make the password public of course.)

News web sites use RSS to tell give everyone a list of their newest articles. For example:

   
    <?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>http://news.example.com/</link>

            <item>
                <title>News Flash: I Like Bread</title>
                <guid>4d4a0a12-f188-4c97-908b-eea27213c2fe</guid>
                <pubDate>Wed, 27 Jul 2005 00:30:30 -0700</pubDate>
                <link>http://news.example.com/artcle/554</link>
            </item>
            <item>
                <title>Big News Today: Birds Fly</title>
                <guid>c4a63f09-b45b-466b-8773-6ff264001ab7</guid>
                <pubDate>Tue, 19 Jul 2005 04:32:51 -0700</pubDate>
                <link>http://news.example.com/artcle/553</link>
            </item>
            <item>
                <title>Fire is Hot</title>
                <guid>c1795324-d5ea-44fa-95b1-b5ce2090d4f1</guid>
                <pubDate>Sun, 15 May 2005 13:02:08 -0700</pubDate>
                <link>http://news.example.com/artcle/552</link>
            </item>
        </channel>
    
    </rss>
    

Bloggers use RSS to tell give everyone a list of their newest blog posts. For example:

   
    <?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>http://joe-blow.example.net/</link>

            <item>
                <title>I Be Blogging...</title>
                <guid>http://joe-blow.example.net/log/21</guid>
                <pubDate>Sun, 15 May 2005 13:02:08 -0500</pubDate>
                <link>http://joe-blow.example.net/log/21</link>
            </item>
            <item>
                <title>I am so SMRT</title>
                <guid>http://joe-blow.example.net/log/20</guid>
                <pubDate>Sat, 14 May 2005 22:19:18 -0500</pubDate>
                <link>http://joe-blow.example.net/log/20</link>
            </item>
            <item>
                <title>Huh?</title>
                <guid>http://joe-blow.example.net/log/19</guid>
                <pubDate>Sat, 14 May 2005 09:55:59 -0500</pubDate>
                <link>http://joe-blow.example.net/log/19</link>
            </item>
            <item>
                <title>Black Cat Spotted</title>
                <guid>http://joe-blow.example.net/log/18</guid>
                <pubDate>Fri, 13 May 2005 13:13:13 -0500</pubDate>
                <link>http://joe-blow.example.net/log/18</link>
            </item>
        </channel>
    
    </rss>
    

Those who create IPradio use RSS to allow users to broadcatch their shows. For example:

   
    <?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>http://joe.ipradio.example.net/</link>

            <item>
                <title>I C UR Tan Line</title>
                <guid>http://joe.ipradio.example.net/show/55</guid>
                <pubDate>Mon, 15 Aug 2005 16:11:57 -0400</pubDate>
                <enclosure url="http://joe.ipradio.example.net/show/55"
                           length="4487216"
                           type="application/ogg"
                />
            </item>
            <item>
                <title>Car Care for Car Fanatics</title>
                <guid>http://joe.ipradio.example.net/show/54</guid>
                <pubDate>Mon, 8 Aug 2005 13:12:12 -0400</pubDate>
                <enclosure url="http://joe.ipradio.example.net/show/54"
                           length="4892178"
                           type="audio/x-mp3"
                />
            </item>
            <item>
                <title>Best Beaches in BC</title>
                <guid>http://joe.ipradio.example.net/show/53</guid>
                <pubDate>Mon, 1 Aug 2005 18:22:14 -0400</pubDate>
                <enclosure url="http://joe.ipradio.example.net/show/53"
                           length="3984215"
                           type="application/ogg"
                />
            </item>
        </channel>
    
    </rss>
    

NOTE: Broadcatching of IPradio is sometimes call Podcasting. However, it is suggested that this term is not used. Apple seems to own a registered trademark on the term. And thus owns the word.

Those who create IPTV use RSS to allow users to broadcatch their shows. For example:

   
    <?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>http://katetv.example.com/</link>

            <item>
                <title>This is Fun</title>
                <guid>http://katetv.example.com/show/4</guid>
                <pubDate>Tue, 23 Aug 2005 21:02:05 -0800</pubDate>
                <enclosure url="http://katetv.example.com/show/4"
                           length="1911146"
                           type="application/ogg"
                />
            </item>
            <item>
                <title>Watch This</title>
                <guid>http://katetv.example.com/show/3</guid>
                <pubDate>Tue, 16 Aug 2005 16:11:57 -0400</pubDate>
                <enclosure url="http://katetv.example.com/show/3"
                           length="1387442"
                           type="application/ogg"
                />
            </item>
            <item>
                <title>It is me again</title>
                <guid>http://katetv.example.com/show/2</guid>
                <pubDate>Tue, 9 Aug 2005 13:12:12 -0400</pubDate>
                <enclosure url="http://katetv.example.com/show/2"
                           length="1894877"
                           type="video/mpeg"
                />
            </item>
            <item>
                <title>Hello</title>
                <guid>http://katetv.example.com/show/1</guid>
                <pubDate>Tue, 2 Aug 2005 18:22:14 -0400</pubDate>
                <enclosure url="http://katetv.example.com/show/1"
                           length="17442215"
                           type="application/ogg"
                />
            </item>
        </channel>
    
    </rss>
    

{{template.PreviousNext()}}

Revision Source

<p>
</p><p>This page explains what RSS is.  You will not yet be creating your own RSS files, but you will be seeing how RSS is commonly used.  And seeing simple example RSS files for these common uses.  You will also be getting a little history on RSS.
</p><p><br>
</p>
<h3 name="What_is_RSS.3F"> What is RSS? </h3>
<p>The most popular <a href="en/RSS/Version">versions of RSS</a> are <a href="en/XML">XML</a>-based markup languages used for syndication.  (Although <a href="en/RDF">RDF</a>-based RSS formats exist.  Namely the deprecated <a href="en/RSS/Version/0.90">RSS 0.90</a> and <a href="en/RSS/Version/1.0">RSS 1.0</a>.)  Common uses of RSS syndication are for the syndication of news web sites, of blogs, of IPradio, and of IPTV.
</p><p>This tutorial teaches <a href="en/RSS/Version/2.0">RSS 2.0</a>.  But makes an effort to point out issues with other <a href="en/RSS/Version">versions of RSS</a>.
</p><p>RSS is almost never written by hand.  But almost always created by server side software (usually written in a language like PHP, Java, C# or Python) on the web server.  However, so that we can learn RSS, we will be creating RSS scripts by hand.
</p>
<h3 name="Short_History_of_RSS"> Short History of RSS </h3>
<p>In March of 1999 Netscape released <a href="en/RSS/Version/0.90">RSS 0.90</a>.  It was much much different than today's RSS.  It wasn't really a format for syndication, but was a format for providing a summary of a website.  In fact, back then, RSS did not stand for <b>Really Simple Syndication</b> but stood for <b>Rich Site Summary</b>.
</p><p>In July of 1999 <a href="en/RSS/Version/0.91/Netscape">Netscape's RSS 0.91</a> was released.  Like <a href="en/RSS/Version/0.90">RSS 0.90</a>, Netscape's RSS 0.91 was also a format for providing a summary of a website, and not really a syndication format (as it is today).  Netscape's RSS 0.91 was created to simplify things.  RSS 0.90 was <a href="en/RDF">RDF</a>-based.  (Which many found to be overly complex.)  Netscape's RSS 0.91 was only <a href="en/XML">XML</a>-based and added a <a href="en/DTD">DTD</a> to allow several entities (commonly found in <a href="en/HTML">HTML</a>).
</p><p>So at this point Netscape deprecated the <a href="en/RDF">RDF</a>-based <a href="en/RSS/Version/0.90">RSS 0.90</a> and told everyone to use <a href="en/RSS/Version/0.91/Netscape">Netscape's RSS 0.91</a>, which was <a href="en/XML">XML</a>-based.
</p><p>In June of 2000 <a href="en/RSS/Version/0.91/Userland">Userland's RSS 0.91</a> was released.  (And yes, that means that there are 2 different version of <a href="en/RSS/Version/0.91">RSS 0.91</a>.)  The difference between the 2 different versions of <a href="en/RSS/Version/0.91">RSS 0.91</a> -- <a href="en/RSS/Version/0.91/Netscape">Netscape's RSS 0.91</a> and <a href="en/RSS/Version/0.91/Userland">Userland's RSS 0.91</a> -- is that Userland's RSS 0.91 does not have the <a href="en/DTD">DTD</a> that Netscape's RSS 0.91 has; and thus doesn't have the extra entities that Netscape's RSS 0.91 (commonly found in <a href="en/HTML">HTML</a>).  Other than that though, they are the same.  Technically speaking, Userland's RSS 0.91 is a subset of Netscape's RSS 0.91.
</p><p><i><b> TODO: More history goes here </b></i>
</p><p><br>
</p>
<h3 name="How_RSS_is_Used_Today"> How RSS is Used Today </h3>
<p>Today, RSS is mostly used for syndication.  Syndication is the process of telling others that you have content for them to consume.  In other words, when you syndicate, you are telling everyone something like: "Hey everyone, I've got articles that I want everyone to come and read.  Just subscribe to my RSS feed and be able to get the latest ones all the time.".
</p>
<div class="note">
<p><b>NOTE</b>: If you provide a non-password-protected RSS feed, you are implicitly giving everyone permission to use the contents in you RSS feed in almost any way they see fit.  They can read it.  The can make local copies of it.  They can share that local copy.  They can put it on their web site.  They can even re-syndicated it.  And more.
</p><p>If you don't want any of that done, then don't put it in a non-password-protected RSS feed.  (And don't make the password public of course.)
</p>
</div>
<p>News web sites use RSS to tell give everyone a list of their newest articles.  For example:
</p>
<pre class="eval">   <span class="plain">
    &lt;?xml version="1.0"?&gt;

    &lt;rss version="2.0"&gt;
    
        &lt;channel&gt;
            &lt;title&gt;Example News Site&lt;/title&gt;
            &lt;description&gt;This is an Example News Site.&lt;/description&gt;
            &lt;lastBuildDate&gt;Wed, 27 Jul 2005 00:30:30 -0700&lt;/lastBuildDate&gt;
            &lt;link&gt;http://news.example.com/&lt;/link&gt;

            &lt;item&gt;
                &lt;title&gt;News Flash: I Like Bread&lt;/title&gt;
                &lt;guid&gt;4d4a0a12-f188-4c97-908b-eea27213c2fe&lt;/guid&gt;
                &lt;pubDate&gt;Wed, 27 Jul 2005 00:30:30 -0700&lt;/pubDate&gt;
                &lt;link&gt;http://news.example.com/artcle/554&lt;/link&gt;
            &lt;/item&gt;
            &lt;item&gt;
                &lt;title&gt;Big News Today: Birds Fly&lt;/title&gt;
                &lt;guid&gt;c4a63f09-b45b-466b-8773-6ff264001ab7&lt;/guid&gt;
                &lt;pubDate&gt;Tue, 19 Jul 2005 04:32:51 -0700&lt;/pubDate&gt;
                &lt;link&gt;http://news.example.com/artcle/553&lt;/link&gt;
            &lt;/item&gt;
            &lt;item&gt;
                &lt;title&gt;Fire is Hot&lt;/title&gt;
                &lt;guid&gt;c1795324-d5ea-44fa-95b1-b5ce2090d4f1&lt;/guid&gt;
                &lt;pubDate&gt;Sun, 15 May 2005 13:02:08 -0700&lt;/pubDate&gt;
                &lt;link&gt;http://news.example.com/artcle/552&lt;/link&gt;
            &lt;/item&gt;
        &lt;/channel&gt;
    
    &lt;/rss&gt;
    </span>
</pre>
<p>Bloggers use RSS to tell give everyone a list of their newest blog posts.  For example:
</p>
<pre class="eval">   <span class="plain">
    &lt;?xml version="1.0"?&gt;

    &lt;rss version="2.0"&gt;
    
        &lt;channel&gt;
            &lt;title&gt;Joe Blow's Blog&lt;/title&gt;
            &lt;description&gt;This is the Weblog of Joe Blow&lt;/description&gt;
            &lt;lastBuildDate&gt;Sun, 15 May 2005 13:02:08 -0500&lt;/lastBuildDate&gt;
            &lt;link&gt;http://joe-blow.example.net/&lt;/link&gt;

            &lt;item&gt;
                &lt;title&gt;I Be Blogging...&lt;/title&gt;
                &lt;guid&gt;http://joe-blow.example.net/log/21&lt;/guid&gt;
                &lt;pubDate&gt;Sun, 15 May 2005 13:02:08 -0500&lt;/pubDate&gt;
                &lt;link&gt;http://joe-blow.example.net/log/21&lt;/link&gt;
            &lt;/item&gt;
            &lt;item&gt;
                &lt;title&gt;I am so SMRT&lt;/title&gt;
                &lt;guid&gt;http://joe-blow.example.net/log/20&lt;/guid&gt;
                &lt;pubDate&gt;Sat, 14 May 2005 22:19:18 -0500&lt;/pubDate&gt;
                &lt;link&gt;http://joe-blow.example.net/log/20&lt;/link&gt;
            &lt;/item&gt;
            &lt;item&gt;
                &lt;title&gt;Huh?&lt;/title&gt;
                &lt;guid&gt;http://joe-blow.example.net/log/19&lt;/guid&gt;
                &lt;pubDate&gt;Sat, 14 May 2005 09:55:59 -0500&lt;/pubDate&gt;
                &lt;link&gt;http://joe-blow.example.net/log/19&lt;/link&gt;
            &lt;/item&gt;
            &lt;item&gt;
                &lt;title&gt;Black Cat Spotted&lt;/title&gt;
                &lt;guid&gt;http://joe-blow.example.net/log/18&lt;/guid&gt;
                &lt;pubDate&gt;Fri, 13 May 2005 13:13:13 -0500&lt;/pubDate&gt;
                &lt;link&gt;http://joe-blow.example.net/log/18&lt;/link&gt;
            &lt;/item&gt;
        &lt;/channel&gt;
    
    &lt;/rss&gt;
    </span>
</pre>
<p>Those who create IPradio use RSS to allow users to broadcatch their shows.  For example:
</p>
<pre class="eval">   <span class="plain">
    &lt;?xml version="1.0"?&gt;

    &lt;rss version="2.0"&gt;
    
        &lt;channel&gt;
            &lt;title&gt;Joe's IPradio Show&lt;/title&gt;
            &lt;description&gt;The best IPradio Show on the Internet, staring Joe!&lt;/description&gt;
            &lt;lastBuildDate&gt;Mon, 15 Aug 2005 16:12:37 -0400&lt;/lastBuildDate&gt;
            &lt;link&gt;http://joe.ipradio.example.net/&lt;/link&gt;

            &lt;item&gt;
                &lt;title&gt;I C UR Tan Line&lt;/title&gt;
                &lt;guid&gt;http://joe.ipradio.example.net/show/55&lt;/guid&gt;
                &lt;pubDate&gt;Mon, 15 Aug 2005 16:11:57 -0400&lt;/pubDate&gt;
                &lt;enclosure url="http://joe.ipradio.example.net/show/55"
                           length="4487216"
                           type="application/ogg"
                /&gt;
            &lt;/item&gt;
            &lt;item&gt;
                &lt;title&gt;Car Care for Car Fanatics&lt;/title&gt;
                &lt;guid&gt;http://joe.ipradio.example.net/show/54&lt;/guid&gt;
                &lt;pubDate&gt;Mon, 8 Aug 2005 13:12:12 -0400&lt;/pubDate&gt;
                &lt;enclosure url="http://joe.ipradio.example.net/show/54"
                           length="4892178"
                           type="audio/x-mp3"
                /&gt;
            &lt;/item&gt;
            &lt;item&gt;
                &lt;title&gt;Best Beaches in BC&lt;/title&gt;
                &lt;guid&gt;http://joe.ipradio.example.net/show/53&lt;/guid&gt;
                &lt;pubDate&gt;Mon, 1 Aug 2005 18:22:14 -0400&lt;/pubDate&gt;
                &lt;enclosure url="http://joe.ipradio.example.net/show/53"
                           length="3984215"
                           type="application/ogg"
                /&gt;
            &lt;/item&gt;
        &lt;/channel&gt;
    
    &lt;/rss&gt;
    </span>
</pre>
<div class="note">
<p><b>NOTE</b>: Broadcatching of IPradio is sometimes call Podcasting.  However, it is suggested that this term is not used.  Apple seems to own a registered trademark on the term.  And thus <b>owns</b> the word.
</p>
</div>
<p>Those who create IPTV use RSS to allow users to broadcatch their shows.  For example:
</p>
<pre class="eval">   <span class="plain">
    &lt;?xml version="1.0"?&gt;

    &lt;rss version="2.0"&gt;
    
        &lt;channel&gt;
            &lt;title&gt;Kate's IPTV Show&lt;/title&gt;
            &lt;description&gt;Watch it or else!  You know you want to.&lt;/description&gt;
            &lt;lastBuildDate&gt;Tue, 23 Aug 2005 21:02:05 -0800&lt;/lastBuildDate&gt;
            &lt;link&gt;http://katetv.example.com/&lt;/link&gt;

            &lt;item&gt;
                &lt;title&gt;This is Fun&lt;/title&gt;
                &lt;guid&gt;http://katetv.example.com/show/4&lt;/guid&gt;
                &lt;pubDate&gt;Tue, 23 Aug 2005 21:02:05 -0800&lt;/pubDate&gt;
                &lt;enclosure url="http://katetv.example.com/show/4"
                           length="1911146"
                           type="application/ogg"
                /&gt;
            &lt;/item&gt;
            &lt;item&gt;
                &lt;title&gt;Watch This&lt;/title&gt;
                &lt;guid&gt;http://katetv.example.com/show/3&lt;/guid&gt;
                &lt;pubDate&gt;Tue, 16 Aug 2005 16:11:57 -0400&lt;/pubDate&gt;
                &lt;enclosure url="http://katetv.example.com/show/3"
                           length="1387442"
                           type="application/ogg"
                /&gt;
            &lt;/item&gt;
            &lt;item&gt;
                &lt;title&gt;It is me again&lt;/title&gt;
                &lt;guid&gt;http://katetv.example.com/show/2&lt;/guid&gt;
                &lt;pubDate&gt;Tue, 9 Aug 2005 13:12:12 -0400&lt;/pubDate&gt;
                &lt;enclosure url="http://katetv.example.com/show/2"
                           length="1894877"
                           type="video/mpeg"
                /&gt;
            &lt;/item&gt;
            &lt;item&gt;
                &lt;title&gt;Hello&lt;/title&gt;
                &lt;guid&gt;http://katetv.example.com/show/1&lt;/guid&gt;
                &lt;pubDate&gt;Tue, 2 Aug 2005 18:22:14 -0400&lt;/pubDate&gt;
                &lt;enclosure url="http://katetv.example.com/show/1"
                           length="17442215"
                           type="application/ogg"
                /&gt;
            &lt;/item&gt;
        &lt;/channel&gt;
    
    &lt;/rss&gt;
    </span>
</pre>
<p>{{template.PreviousNext()}}
</p>
Revert to this revision