Đề tài này hay lắm. Nếu bạn để ý thì tất cả trang web về tin tức đều có phục vụ RSS cả.
Nói về RSS cho hết hang cùng ngỏ hẻm thì nói cả tháng chưa xong, nhưng nói ngắn gọn ra thì như vầy: RSS (Really Simple Syndication) là một loại dịch vụ web (Web Service) để chuyển thông tin (message) giữa hai hệ thống máy tính, hoặc 2 trang web khác nhau. (Web Service có nhiều loại, RSS chỉ là một trong số đó). Được phát triển đầu tiên bởi Netscape năm 1995, sau đó năm 2001 AOL mua lại Netscape thì đem RSS bỏ đi. Sau vụ này có 2 nhóm khác nhau tiếp tục phát triển RSS (RSS-DEV Working Group và UserLand Software), nhưng vì họ có cách nhìn khác nhau, nên thành ra RSS phát triển thành nhiều version. Sau này tất cả các trang tin tức (bao gồm blog) đều sử dụng cả. Như vậy có thể nói RSS là một trong những kỹ thuật nền tảng cho web 2.0.
RSS dùng cấu hình XML để truyền thông tin giữa hai trang khác nhau. Phía server, trang RSS của họ sẽ được cập nhật tự động mỗi khi có tin tức mới nhập vào. Phía client dùng một chương trình khác để đọc trang RSS này, và hiển thị trên website của client.
Có cả thảy tới 7 (hoặc hơn) version RSS, bạn có thể gu gồ một cái để biết được loại nào thích hợp để xài. Trong bài này tôi sẽ dùng verson 2.0, cái này có vẻ phổ biến hơn mấy cái kia. Cấu trúc đại loại như vầy (Code mượn từ wikipedia):
Code:
<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Lift Off News</title>
<link>http://liftoff.msfc.nasa.gov/</link>
<description>Liftoff to Space Exploration.</description>
<language>en-us</language>
<pubDate>Tue, 10 Jun 2003 04:00:00 GMT</pubDate>
<lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<generator>Weblog Editor 2.0</generator>
<managingEditor>editor@example.com</managingEditor>
<webMaster>webmaster@example.com</webMaster>
<ttl>5</ttl>
<item>
<title>Star City</title>
<link>http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp</link>
<description>How do Americans get ready to work with Russians aboard the
International Space Station? They take a crash course in culture, language
and protocol at Russia's Star City.</description>
<pubDate>Tue, 03 Jun 2003 09:39:21 GMT</pubDate>
<guid>http://liftoff.msfc.nasa.gov/2003/06/03.html#item573</guid>
</item>
<item>
<title>Space Exploration</title>
<link>http://liftoff.msfc.nasa.gov/</link>
<description>Sky watchers in Europe, Asia, and parts of Alaska and Canada
will experience a partial eclipse of the Sun on Saturday, May 31st.</description>
<pubDate>Fri, 30 May 2003 11:06:42 GMT</pubDate>
<guid>http://liftoff.msfc.nasa.gov/2003/05/30.html#item572</guid>
</item>
<item>
<title>The Engine That Does More</title>
<link>http://liftoff.msfc.nasa.gov/news/2003/news-VASIMR.asp</link>
<description>Before man travels to Mars, NASA hopes to design new engines
that will let us fly through the Solar System more quickly. The proposed
VASIMR engine would do that.</description>
<pubDate>Tue, 27 May 2003 08:37:32 GMT</pubDate>
<guid>http://liftoff.msfc.nasa.gov/2003/05/27.html#item571</guid>
</item>
<item>
<title>Astronauts' Dirty Laundry</title>
<link>http://liftoff.msfc.nasa.gov/news/2003/news-laundry.asp</link>
<description>Compared to earlier spacecraft, the International Space
Station has many luxuries, but laundry facilities are not one of them.
Instead, astronauts have other options.</description>
<pubDate>Tue, 20 May 2003 08:56:02 GMT</pubDate>
<guid>http://liftoff.msfc.nasa.gov/2003/05/20.html#item570</guid>
</item>
</channel>
</rss>
Phân tích cấu trúc:
Phía ngoài cùng, một file RSS cần có:
<?xml version="1.0"?>
--> cái này bất cứ XML file nào cũng cần phải có, vì RSS là một thể hình của XML nên không ngoại lệ.
<rss version="2.0">
...
</rss>
--> Tag RSS bọc ngoài cùng
Code:
<channel>
<title>Lift Off News</title>
<link>http://liftoff.msfc.nasa.gov/</link>
<description>Liftoff to Space Exploration.</description>
<language>en-us</language>
<pubDate>Tue, 10 Jun 2003 04:00:00 GMT</pubDate>
<lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<generator>Weblog Editor 2.0</generator>
<managingEditor>editor@example.com</managingEditor>
<webMaster>webmaster@example.com</webMaster>
<ttl>5</ttl>
...
</chanel>
Phía trong của tag RSS là tag chanel, bao gồm tất cả thông tin của trang RSS này.
Các mục "title", "link", "description", "pubDate" là những mục cần thiết để trình đọc RSS phân biệt được nguồn RSS từ đâu, và có thể hiển thị những thông tin căn bản của nguồn đó. Trong những version trước, có version chỉ có những mục này.
Sau các thông tin căn bản dưới chanel thì có các hạng mục "item". Mỗi item là một bản tin, bao gồm :
- title: đề mục của bản tin (chú ý title này khác title của chanel)
- link: đường dẫn đến bản tin của website chủ
- description: đại ý rút ngắn của bản tin đó (để người đọc biết bản tin nói về chuyện gì)
- pubDate: bản tin này được đăng vào ngày giờ nào
- guid: đường dẫn phụ trong trang tin này, nếu có.
OK... vậy đã, phải đi làm bài đây kẻo bị cứa cổ.
Tuần sau nộp bài xong tính viết tiếp (nếu bài không ngập đầu):
- Client application - đọc RSS
- Server application - output RSS.
Bookmarks