Almost any regularly updated website, including this blog, hosts RSS feeds. Over the past seven or eight years, the use of the format has exploded. Search engine services support RSS as an output format, so that you can monitor new results that rise to the top over time. Online stores support feeds that allow loyal customers to track new special promotions.

Although there are many applications and users of RSS, the format is still widely misunderstood, largely because services have been created to consume and process RSS in ways that aren't covered by the specification.

So what is RSS? It's a document format that is expressed in terms of XML, a general purpose language for transmitting hierarchical information in a way that (hopefully) is self-describing.  The document is delivered to the consumer over the same protocol that is used to serve up web pages -- HTTP.

Central to RSS is the notion of a channel, which refers to the source of the information transmitted further on down in the document. In here you can find information about the HTML version of the website that is represented by the feed, contact information for the publisher, and date information on when the feed was generated.

In addition to all of descriptive data discussed above, a channel will have a collection of items. An item corresponds to a content unit, such as a post, an article, a comment, a search result, or a product that's on sale.

The item will contain information about its date of publication, a title, a link to the original content unit, and a snippet of the content itself. Some feeds will provide the full content, but a feed is not required to do this. Most advertising supported sites will not provide the full content in the feed because they want the reader to follow the link back to the original website so that ads can be served to the reader.

The content can be plain text or HTML, although most feeds in practice serve out only a limited subset of HTML because the reader may not be capable of rendering complicated HTML.

In the early days of RSS, most readers consumed the format using a standalone program that could parse and display the feed, although most people now use a hosted service like Bloglines or Google Reader. There are even console based readers like snownews, that render the feeds as minimally formatted text.

That's what RSS is, now let's cover some misconceptions about RSS.

  • Any web browser should display RSS in a way that looks like a regular webpage -- RSS is an XML-based format. Most browsers released within the last five years are capable of parsing XML, but since XML does not address on-screen formatting, many of the older browsers, such as Internet Explorer 6, will display the XML with indentation to show the hierarchy of data within the document. Firefox has supported a basic level of rendering RSS feeds in a visually appealing manner, but it does not render all of the HTML formatting faithfully. For example, if you have style attributes on an image that resize an oversize image, Firefox will ignore the settings.
  • RSS feeds should be tightly integrated with my web-based reader -- Some users have come to expect that clicking on the RSS chiclet graphic on a webpage should result in the loading of another web page that offers you the opportunity to add the feed to an online reader. This functionality is provided neither by RSS nor the browser. Rather, it is usually achieved via a proprietary XSL transform (a language for converting XML into something else), which is no trivial undertaking. Google's FeedBurner is an example of a service that makes use of this technology.
  • I want RSS feeds delivered to my e-mail address -- As we learned earlier, RSS is delivered using the same protocol as web pages.  An e-mail is transmitted between mail servers using a different protocol altogether -- STMP, and the content is then accessed via either an open standard, like POP3 or IMAP, or a proprietary protocol like Microsoft Exchange or Lotus Notes.  Moreover, most e-mail programs don't have a built-in XML renderer for message bodies.  In reality, the person isn't really wanting an XML file, they want something like an e-mail newsletter subscription or message digest, which is something that has been around for a lot longer than RSS.  RSS feed reading has a couple of advantages over the traditional newsletter.  First, RSS readers track which items you have read and which items haven't been read.  Second, RSS readers, like Google Reader have deep caching history that can be searched, so you can quickly retrieve things that you may have read, but can't quite remember where.
Now that we've tried to clarify what RSS is and is not, it's worth noting that new technologies are springing up that blur the lines between RSS and other modes of data propagation.  The productivity website Lifehacker today had a pair of posts, by different authors, that underscores this point very well.
  • MailOnFeed -- This free online service allows you to follow incoming e-mails via an RSS reader, essentially transforming complete e-mail messages into RSS channel items.
  • Notify.me -- This service allows you to conume RSS feed items via completely different channels, like e-mail, cell phone text message, and instant message.
Perhaps this is a sign that RSS is becoming sort of a lingua franca for time-sensitive data?