RSS (định dạng tập tin)

Cách sử dụng

RSS được dùng phổ biến bởi cộng đồng weblog để chia sẻ những tiêu đề tin tức mới nhất hay toàn bộ nội dung của nó, và ngay cả các tập tin đa phương tiện đính kèm. (Xem podcasting, vodcasting, broadcasting, screencasting, Vloging, và MP3 blogs.)  Vào giữa năm 2000, việc sử dụng RSS trở nên phổ biến đối với hãng tin tức lớn, bao gồm Reuters, CNN, và BBC. Những nhà cung cấp tin này cho phép các website khác tổng hợp những tiêu đề tin tức "được chia sẻ" hay cung cấp các tóm tắt ngắn gọn của các bản tin chính dưới nhiều hình thức thỏa hiệp khác nhau. RSS ngày nay được dùng cho nhiều mục đích, bao gồm tiếp thị, báo cáo lỗi (bug-reports), hay các hoạt động khác bao gồm cập nhật hay xuất bản định kì.
Một chương trình gọi là một feed reader hay aggregator có thể kiểm tra xem một website có hỗ trợ RSS cho người dùng không và, nếu có, hiển thị những bài viết cập nhật nhất mà nó tìm thấy từ website đó. Ngày nay có thể tìm thấy RSS feeds trên rất nhiều Web sites lớn, cũng như nhiều những site nhỏ.
Các công cụ đọc tin phía trình khách và công cụ aggregators thường được xây dựng thành một chương trình độc lập hoặc là một phần mở rộng của các chương trình có sẵn như trình duyệt web. Những chương trình như vậy có mặt trên nhiều hệ điều hành khác nhau. Xem danh sách các aggregators chuyên về tin tức.
Các phần mềm thu thập tin tức như trên không đòi hỏi phải cài đặt và có thể sử dụng trên các máy tính có kết nối Internet. Một số aggregators kết hợp khả năng chia sẻ tin tức, ví dụ: lấy mọi thông tin bóng đá từ nhiều nguồn tin và cung cấp thành một nguồn tin mới. Đây cũng chính là các động cơ tìm kiếm nội dung được đăng tải thông qua RSS feeds như Feedster hay Blogdigger.
Trên các trang web, RSS feeds thường được liên kết bằng một hình chữ nhật màu cam , có thể kèm theo các ký tự XML  hay RSS .

Lịch sử

Trước RSS, có nhiều định dạng khác cũng từng được dùng cho vấn đề chia sẻ thông tin, nhưng không có định dạng nào được dùng rộng rãi cho đến ngày nay, vì hầu hết chủ yếu dùng cho từng dịch vụ đơn. Ví dụ, năm 1997 Microsoft tạo ra Channel Definition Format cho chức năng Active Channel của Internet Explorer 4.0. Dave Winer cũng đã thiết kế định dạng XML cho việc chia sẻ thông tin riêng cho Scripting News weblog, ra đời năm 1997.
RDF (Resource Description Framework) Site Summary, phiên bản đầu tiên của RSS, được tạo ra bởi Dan Libby của Netscape vào tháng 3 năm 1999 dùng cho cổng điện tử My Netscape. Phiên bản này trở thành RSS 0.9. Vào tháng 7 năm 1999, đáp trả lại các đề nghị và góp ý, Libby đưa ra bản phác thảo ban đầu đặt tên là RSS 0.91 (RSS viết tắt của Rich Site Summary), nhằm đơn giản hóa định dạng và tích hợp một số phần trong định dạng scriptingNews của Winer. Từ đó, Libby đề xuất ra định dạng tương tự-RSS 1.0 thông qua cái gọi là Futures Document.
Chẳng bao lâu sau, Netscape không còn tập trung vào RSS/XML, bỏ rơi định dạng đó. Một nhóm làm việc và danh sách địa chỉ mail, RSS-DEV, được thành lập bởi nhiều người dùng và cộng đồng XML để tiếp tục phát triển nó. Cùng thời điểm, Winer đưa ra phiên bản sửa đổi của RSS 0.91 cho website Userland,  vì nó đang được dùng trong sản phẩm của họ. Ông ta cho rằng đặc tả kĩ thuật của RSS 0.91 là tài sản riêng của công ty ông, UserLand Software. Vì chẳng có bên nào có tuyên bố chính thức về tên của định dạng, cho nên bây giờ có nhiều tên gọi.
Nhóm RSS-DEV tiếp tục đưa ra RSS 1.0 vào tháng 12 năm 2000 dựa trên bản phác thảo góp ý sửa đổi cho bản đặc tả kĩ thuật đưa ra bởi Tristan Louis. Giống với RSS 0.9 (không phải 0.91) bản này dựa vào đặc tả kĩ thuật của RDF, nhưng có tính khả mở hơn, với nhiều mục bắt nguồn từ các từ vựng metadata chuẩn như Dublin Core.
Mười chín ngày sau, Winer cho ra phiên bản RSS 0.92, a một vài chỉnh sửa có tính tương thích với các thay đổi của RSS 0.91 dựa trên cùng bản góp ý. Vào tháng 4 năm 2001, ông đưa ra bản phác thảo của RSS 0.93 mà hầu hết là giống với bản 0.92. Bản thảo RSS 0.94 ra đời vào tháng Tám, phục hồi lại những thay đổi trong bản 0.93, và thêm vào thuộc tính (attribute) type cho thành phần (element) description.
Vào tháng 9 năm 2002, Winer cho ra bản cuối cùng của RSS 0.92, bây giờ gọi là RSS 2.0 và nhấn mạnh "Really Simple Syndication" là nghĩa của ba ký tự viết tắt RSS. Đặc tả kĩ thuật của RSS 2.0 loại bỏ thuộc tính type từng được thêm vào trong RSS 0.94 và cho phép người dùng có thể thêm thành phần mở rộng nhờ dùng XML namespaces. Nhiều phiên bản của RSS 2.0 đã được ra đời, nhưng chỉ số của phiên bản thì vẫn không thay đổi.
Vào tháng Mười Một, 2002, Thời báo New York đã bắt đầu cung cấp cho người đọc khả năng mục các tin có hỗ trợ RSS feeds liên quan đến nhiều chủ đề khác nhau. Vào tháng Giêng, 2003, David Winer đã gọi việc dùng RSS của Thời báo New York Time là một "điểm  nhấn" (tipping point) trong việc đưa định dạng RSS trở thành một chuẩn.
Vào tháng Bảy, 2003, Winer và Userland Software được cấp quyền sở hữu của đặc tả kĩ thuật RSS 2.0, Trung tâm Berkman về Xã hội và Internet của Harvard .
Winer đã bị phê bình vì đã đơn phương tạo ra định dạng mới và tự đưa ra số của phiên bản. Để đáp lại, đồng tác giả của RSS 1.0 Aaron Swartz đã đưa ra RSS 3.0, một định dạng văn bản không dựa trên XML. Định dạng đó chỉ là một sự bắt chước và chỉ được dùng rất ít.
Vào tháng Giêng 2005, Sean B. Palmer và Christopher Schmidt đã cho ra bản sơ thảo đầu tiên của RSS 1.1. Nó là bản sửa lỗi cho 1.0, loại bỏ những đặc tính ít dùng, đơn giản hóa cú pháp và nâng cao đặc tả kĩ thuật dựa vào các đặc tả RDF. Vào tháng 7 năm 2005, RSS 1.1 chỉ hơn một bài tập mang tính học thuật một ít.

Ví dụ

Đây là ví dụ về tập tin RSS 1.0.
 1 <?xml version="1.0"?> 2  3 <rdf:RDF 
 4   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 5   xmlns="http://purl.org/rss/1.0/"> 6  7   <channel rdf:about="http://www.xml.com/xml/news.rss"> 8     <title>XML.com</title> 9     <link>http://xml.com/pub</link>10     <description>11       XML.com features a rich mix of information and services 
12       for the XML community.
13     </description>14     <image rdf:resource="http://xml.com/universal/images/xml_tiny.gif" />15     <items>16       <rdf:Seq>17         <rdf:li resource="http://xml.com/pub/2000/08/09/xslt/xslt.html" />18         <rdf:li resource="http://xml.com/pub/2000/08/09/rdfdb/index.html" />19       </rdf:Seq>20     </items>21     <textinput rdf:resource="http://search.xml.com" />22   </channel>23 24   <image rdf:about="http://xml.com/universal/images/xml_tiny.gif">25     <title>XML.com</title>26     <link>http://www.xml.com</link>27     <url>http://xml.com/universal/images/xml_tiny.gif</url>28   </image>29 30   <item rdf:about="http://xml.com/pub/2000/08/09/xslt/xslt.html">31     <title>Processing Inclusions with XSLT</title>32     <link>http://xml.com/pub/2000/08/09/xslt/xslt.html</link>33     <description>34      Processing document inclusions with general XML tools can be 
35      problematic. This article proposes a way of preserving inclusion 
36      information through SAX-based processing.
37     </description>38   </item>39 40   <item rdf:about="http://xml.com/pub/2000/08/09/rdfdb/index.html">41     <title>Putting RDF to Work</title>42     <link>http://xml.com/pub/2000/08/09/rdfdb/index.html</link>43     <description>44      Tool and API support for the Resource Description Framework 
45      is slowly coming of age. Edd Dumbill takes a look at RDFDB, 
46      one of the most exciting new RDF toolkits.
47     </description>48   </item>49 50   <textinput rdf:about="http://search.xml.com">51     <title>Search XML.com</title>52     <description>Search XML.com's XML collection</description>53     <name>s</name>54     <link>http://search.xml.com</link>55   </textinput>56 </rdf:RDF>
Đây là ví dụ về tập tin RSS 2.0.
 1  <?xml version="1.0"?> 2  <rss version="2.0"> 3    <channel> 4      <title>Birthday Bash Interviews</title> 5      <link>http://kccnfm100.com/</link> 6      <description>Natural Vibrations.</description> 7      <language>en-us</language> 8      <pubDate>Tue, 10 Jun 2003 04:00:00 GMT</pubDate> 9  
10      <lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate>11      <docs>http://blogs.law.harvard.edu/tech/rss</docs>12      <generator>Weblog Editor 2.0</generator>13      <managingEditor>editor@example.com</managingEditor>14      <webMaster>webmaster@example.com</webMaster>15      
16      <item>17        <title>Star City</title>18        <link>http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp</link>19        <description>How do Americans get ready to work with Russians aboard the
20          International Space Station? They take a crash course in culture, language
21          and protocol at Russia's Star City.</description>22        <pubDate>Tue, 03 Jun 2003 09:39:21 GMT</pubDate>23        <guid>http://liftoff.msfc.nasa.gov/2003/06/03.html#item573</guid>24      </item>25      
26      <item>27        <description>Sky watchers in Europe, Asia, and parts of Alaska and Canada
28          will experience a partial eclipse of the Sun on Saturday, May 31st.</description>29        <pubDate>Fri, ngày 30 tháng 5 năm 2003 11:06:42 GMT</pubDate>30        <guid>http://liftoff.msfc.nasa.gov/2003/05/30.html#item572</guid>31      </item>32      
33      <item>34        <title>The Engine That Does More</title>35        <link>http://liftoff.msfc.nasa.gov/news/2003/news-VASIMR.asp</link>36        <description>Before man travels to Mars, NASA hopes to design new engines
37          that will let us fly through the Solar System more quickly.  The proposed
38          VASIMR engine would do that.</description>39        <pubDate>Tue, ngày 27 tháng 5 năm 2003 08:37:32 GMT</pubDate>40        <guid>http://liftoff.msfc.nasa.gov/2003/05/27.html#item571</guid>41      </item>42      
43      <item>44        <title>Astronauts' Dirty Laundry</title>45        <link>http://liftoff.msfc.nasa.gov/news/2003/news-laundry.asp</link>46        <description>Compared to earlier spacecraft, the International Space
47          Station has many luxuries, but laundry facilities are not one of them.
48          Instead, astronauts have other options.</description>49        <pubDate>Tue, ngày 20 tháng 5 năm 2003 08:56:02 GMT</pubDate>50        <guid>http://liftoff.msfc.nasa.gov/2003/05/20.html#item570</guid>51      </item>52    </channel>53  </rss>