RSS协议作为内容聚合订阅的经典标准,从诞生至今经历了多个版本的迭代,不同版本在设计目标和功能特性上各有侧重,了解其版本历史能帮助我们更好地理解RSS协议的应用场景和局限性。
RSS 0.9x系列版本
RSS协议最早由网景公司(Netscape)在1999年推出,最初的版本就是RSS 0.9,当时的设计目标是为网景浏览器的频道功能提供内容聚合支持,结构非常简单,只包含频道的基本信息和条目列表。
后续推出的0.91、0.92等版本属于0.9x系列的优化版本,主要调整了部分标签的定义,简化了内容格式,同时增加了对更多内容类型的支持,不过这个系列版本的功能仍然比较基础,扩展性不足。
0.9x版本的核心结构示例代码如下:
<rss version="0.91">
<channel>
<title>示例频道</title>
<link>https://ipipp.com/feed</link>
<description>这是0.91版本的RSS频道</description>
<item>
<title>第一条内容</title>
<link>https://ipipp.com/post/1</link>
</item>
</channel>
</rss>
RSS 1.0版本
RSS 1.0版本并非网景公司的后续更新,而是由开源社区推动制定的版本,它的全称是RDF Site Summary,基于RDF(资源描述框架)标准设计,和0.9x系列的技术路线完全不同。
这个版本最大的特点是具备良好的扩展性,支持通过XML命名空间添加自定义标签,适合需要复杂内容描述的场景,但由于基于RDF的设计相对复杂,普通站长和开发者的使用门槛较高,普及程度不如后续的2.0版本。
RSS 1.0版本的基础结构示例如下:
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://purl.org/rss/1.0/"
>
<channel rdf:about="https://ipipp.com/feed">
<title>示例频道</title>
<link>https://ipipp.com</link>
<description>这是1.0版本的RSS频道</description>
<items>
<rdf:Seq>
<rdf:li rdf:resource="https://ipipp.com/post/1"/>
</rdf:Seq>
</items>
</channel>
<item rdf:about="https://ipipp.com/post/1">
<title>第一条内容</title>
<link>https://ipipp.com/post/1</link>
<description>内容描述</description>
</item>
</rdf:RDF>
RSS 2.0版本
RSS 2.0版本由Dave Winer主导开发,2002年正式发布,它的全称是Really Simple Syndication,设计目标是兼顾简单易用和扩展能力,既保留了0.9x系列的简洁结构,又支持通过命名空间扩展功能。
这个版本是目前使用最广泛的RSS版本,绝大多数内容平台、订阅工具都支持RSS 2.0格式,它明确了版本号的维护规则,后续仅做小幅修订,没有推出不兼容的新版本,稳定性非常高。
RSS 2.0版本的标准结构示例如下:
<rss version="2.0">
<channel>
<title>示例频道</title>
<link>https://ipipp.com</link>
<description>这是2.0版本的RSS频道</description>
<language>zh-cn</language>
<item>
<title>第一条内容</title>
<link>https://ipipp.com/post/1</link>
<description>内容详细描述</description>
<pubDate>Mon, 01 Jan 2024 00:00:00 GMT</pubDate>
</item>
</channel>
</rss>
不同版本的核心差异对比
为了更清晰地展示各版本的区别,我们可以通过下表对比核心特性:
| 版本系列 | 设计基础 | 扩展性 | 使用门槛 | 普及程度 |
|---|---|---|---|---|
| 0.9x | 网景自定义XML结构 | 弱 | 低 | 早期较高,现在较少使用 |
| 1.0 | RDF标准 | 强 | 高 | 特定专业场景使用 |
| 2.0 | 简化的XML结构 | 中等 | 低 | 目前最普及 |
版本选择建议
如果是普通内容站点需要输出RSS订阅源,优先选择RSS 2.0版本,兼容性好且开发成本低;如果有复杂的内容描述需求,需要自定义标签扩展,可以考虑RSS 1.0版本;0.9x版本目前已经很少使用,除非需要兼容非常老旧的订阅工具,否则不建议选择。
需要注意的是,虽然RSS协议有多个版本,但核心的订阅逻辑是一致的,不同版本的解析工具通常都会兼容多个版本,开发者在开发相关功能时只需要做好版本判断即可。