关于RSS的点滴
简介
RSS是在互联网上被广泛采用的内容包装和投递协议。RSS是Really Simple Syndication的缩写。RSS是一种站点内容聚合的格式。 RSS是XML的一种。所有的RSS文档都遵循 XML 1.0规范, 该规范发布在W3C网站上。
RSS是一种协议,既然是协议,就是两方以上的通信或者交流的约定、规则。
基于RSS协议的通信中有两个重要角色:
1. 信息的发布者
2. 信息的订阅者
用途
RSS是一种网页内容联合格式web content sydication Format。用于聚合来自不同uri的资源内容。为信息订阅者提供方便。
1. 可以一次订阅多个不同的信息源(可以理解为多个网站)的信息;系统会自动定时进行同步,将内容下载到本地,不用一个一个去逛;
2. 对于所有下载后的内容,很多RSS阅读器提供各种聚合功能,如:按照时间,自动生成一个本日报纸,将所有今天以内更新的内容排在一起;不用你自己一个站点一个站点的去发现新内容;按照内容相关性,比如包含某些关键字等,或者某些分类一致的进行聚合。
3. 觉得有意义的内容,可以将其收藏起来,形成自己的知识库(或叫做剪报),便于你日后的检索和利用。
4. 可以一次同步,离线阅读(比如断开网络,或者在飞机上、火车上阅读)
RSS阅读器推荐
以下推荐的RSS聚合软件可以将RSS源读取出来,并以友好的方式显示给您。
看天下网络资讯浏览器(3.0中文版)完全免费的软件
RSSReader 完全免费的软件,但界面较简陋,没有Blog收藏夹的分组功能
SharpReader 免费的软件,但需要先安装.NET Framework
协议简介
• <?Xml version="1.0" encoding="gb2312" ?>
• <rss version="2.0">
• <channel>
• <title>我的Blog</title> //channel的标题
• <description>与我自己的技术Blog相关联</description> //channel的介绍
• <link>http://counter.csdn.Net/pv.aspx?id=72</link> //channel的url
• <item>
• <title><!-- 项标题 --></title> //item的标题
• <link><!-- 项 URL --></link> //item的url
• <description><!-- 简要描述 --></description> //item的介绍
• <!-- 可选的/可扩展的元素 -->//item的其他属性,比如更新时间
• </item>
• <item>
• <!-- 可多个<item>项目-->//一个channel有多个item
• </item>
• </channel>
• </rss>
RSS协议的当前版本2.0在一个RSS文档的开头是一个<rss>节点和一个规定的属性version,该属性规定了该文档将以RSS的哪个版本表示。如果该文档以最新规范来表示,那么它的version属性就必须等于2.0。 在<rss>节点的下一级是一个独立的<channel>节点,该节点包含关于channel的信息和内容。
元素 |
描述 |
范例 |
title |
频道(channel)名称。 |
GoUpstate.com News Headings |
link |
响应该频道的网站的URL |
|
description |
关于该频道的描述 |
The latest news from GoUpstate.com, a Spartanburg Herald-Joural Web Site |
可选的频道元素
Item元素
一个频道可以包含许多项目(item)节点。item的所有节点都是可选的,但是至少要包含至少一个标题(title)和描述(description)
应用方法(发布)
如果网站提供了RSS自动发现机制,可以很方便地把RSS的URL添加到RSS阅读器中。如果没有自动发现,那么可以手动把RSS链接的URL添加到RSS阅读器中
浏览器自动发现
对于一个网页,发布者需要在页面中加入RSS FEED声明。只需在<head>部分加入以下代码:
<link rel="alternate" type="application/rss+xml" title="订阅标题" href="rss feed地址" />
数据发布
RSS的数据提供者有两种行事方式 :
1. 即时生产。当访问者访问一个url,这个url可以没有关联的文件(即url重写方式),也可以关联到一个aspx或者jsp页面。而服务器接收到请求以后,从数据存储中取得数据,转变成RSS协议规定的xml文档,发送给请求者。即把xml文档写入到Response对象的输出流,让请求着得到这个xml。
2. 第二种是发布者提前把数据已经包装成RSS协议规定的xml,存储在服务器的文件系统。而客户的请求映射到了这个文件。两种方法各有长短:第一种方法(即时生产)效率低下;
第二种方法(提前生产)要保证数据的时效性比较困难。