常见存储和下载方式的原理
常见存储和下载方式的原理
比较零碎,到时候在这里整理整理。
HTTP server的存储 FTP和SFTP SMB WebDAV
短链接服务
rsync NFS scp
BT和P2P
常见压缩算法 7z zip bzip
一般文件分发的加密和安全性 到时候整理一下
RSS协议
RSS的的主体是一个文件,每次发布者更新文件,订阅者打开阅读器的时候,拉取文件然后对比获取哪些是新信息。先上标准示例
一个够用的符合RSS2.0标准的订阅源
<?xml version="1.0" encoding="UTF-8"?> <!-- XML声明:指定XML版本和字符编码 -->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <!-- version指定RSS版本,xmlns定义命名空间 -->
<channel> <!-- 包含订阅源的所有信息 -->
<atom:link href="https://example.com/rss.xml" rel="self" type="application/rss+xml"/> <!-- 指向RSS文件本身的链接,用于自引用 -->
<atom:logo>https://yoursite.com/logo.png</atom:logo><!-- 订阅源的Logo [^1] -->
<title>示例订阅源</title> <!-- 订阅源的标题名称 -->
<link>https://example.com/</link> <!-- 订阅源对应的网站主页链接 -->
<description>这是一个示例订阅源</description> <!-- 订阅源的描述信息 -->
<generator>vuepress-plugin-feed2</generator> <!-- 生成此RSS的软件或工具名称 -->
<docs>https://support.google.com/merchants/answer/14987622?hl=zh-Hans</docs> <!-- 指向RSS规范文档的链接(可选) -->
<category>示例分类1</category> <!-- 订阅源的分类标签可以有多个,非必需一般给搜索引擎用 -->
<category>示例分类2</category>
<language>zh-CN</language> <!-- 订阅源使用的语言 -->
<pubDate>Mon, 01 Jan 2024 12:00:00 GMT</pubDate> <!-- 订阅源的创建日期 [^2]-->
<lastBuildDate>Mon, 01 Jan 2024 12:00:00 GMT</lastBuildDate> <!-- 订阅源最近更新的日期,这个时间比上次检查时更新,阅读器就知道需要重新获取内容 [^3]-->
<item> <!-- 表示订阅源中的一篇文章或条目 -->
<title>示例文章1</title> <!-- 文章的标题 -->
<link>https://example.com/article1</link> <!-- 文章的完整URL链接,用户点击跳转的就是这个 [^4]-->
<guid>https://example.com/article1</guid> <!-- 文章的全局唯一标识符,推荐使用URL,Rss阅读器通常用这个去重 [^5]-->
<description>这是第1篇示例文章的描述</description> <!-- 文章的简短描述或摘要 -->
<pubDate>Mon, 01 Jan 2024 12:00:00 GMT</pubDate> <!-- 文章的发布日期和时间 [^6]-->
<atom:updated>Mon, 01 Jan 2024 12:00:00 GMT</atom:updated> <!-- 文章的最后更新时间 [^7]-->
<content:encoded><![CDATA[<p>示例内容1</p>]]></content:encoded> <!-- 文章的完整HTML内容,使用CDATA包裹 -->
</item>
<item> <!-- 第二篇文章 -->
<title>示例文章2</title>
<link>https://example.com/article2</link>
<guid>https://example.com/article2</guid>
<description>这是第2篇示例文章的描述</description>
<pubDate>Mon, 01 Jan 2024 11:00:00 GMT</pubDate>
<atom:updated>Mon, 01 Jan 2024 11:00:00 GMT</atom:updated>
<content:encoded><![CDATA[<p>示例内容2</p>]]></content:encoded>
</item>
</channel>
</rss>
注意事项在示例中标注了
- 大多数现代RSS阅读器会自动检测并使用网站的favicon.ico作为订阅源图标,无需在RSS中明确指定。
- 订阅源的创建日期一般是不变的
- 订阅源最近更新的日期,这个时间比上次检查时更新,阅读器就知道需要重新获取内容,每次生成的时候变更就行
- 文章的完整URL链接,用户点击文章跳转的就是这个
- 文章的全局唯一标识符,推荐使用URL,Rss阅读器通常用这个去重
- guid不影响点击跳转,可以用这个让RSS以为是新文章
- 即使
<pubDate>
和<atom:updated>
时间很老,只要GUID是新的,就会被识别为新文章,检查优先级高
- 文章的发布日期和时间,理论上也是一次性的,大部分旧的阅读器按照这个排序
- 你可以每次更新发布日期让阅读器以为这是新文章,从而让你有新内容的旧文章每次被当作新文章被拉取
- 文章的最后更新时间,每次更新,这个是atom空间定义的,很多阅读器不用这个字段
- 如果支持阅读器文章的最后更新时间那就直接用这个,不用整花活了
- 实际上主要的排序还得看阅读器的行为
- 阅读器可能有缓存或者定期刷新,有可能加上后过一会用户才能收到
Last Edit: 2025-09-16 15:45:38
Loading...