【转载+附言】『给RSS爱好者们的一封信』为什么我们应该提高RSS刷新间隔


请注意,此文章为转载文章,无需原文章作者同意的那种

但还是要附上原链接:https://blog.othing.xyz/archives/rss-refresh.html


!!!此文章一些存在悖误,具体错误详情情查看文章末尾 点击跳转 !!!
所以这篇文章还正在完善中…


这是一个倡议,倡议大家自觉降低对于博客&播客这类 更新频率低/及时性要求不高 feed的更新频率。

注:如果你不清楚文中 rss/atom/feed/源 四个词的区别和意思,把它们都当 rss 就好,没有太大问题,`我们日常使用也会混淆它们😂

__
你的高频率刷新可能正在给一些网站带来伤害!!

正文

全文章和全文输出

有些博客会将他们的全部文章和全文内容输出到 feed 。从 rss 用户的体验和互联网开放精神的角度看,这样的无疑是好事:

  • 一些博客的 feed 不输出全文,哪怕可以用 css 来获取全文,也很麻烦。“没有全文的feed没有灵魂”失去了全文体验, rss 的意义就失去了一半。
  • 博客只输出最近的十几篇文章,但我想看看更多早前的文章,又懒得主动打开网站去翻,我可能就没机会看到之前的博文。毕竟它不输出以前的文章,我哪怕知道这个博客以前的文章肯定不在 feed 里,但我连这些文章的标题都不知道,主动上博客 web 浏览的冲动也就少了几分。
  • 且当博客网站突然间消失在互联网时(比如_科学松鼠会_关站、以及很多个人博客不打招呼删库跑路),我并没有把它的全部文章保存到本地。虽然那些文章我不一定看,但是没有保存下来的话我会有种像丢了东西一样的“损失”感和淡淡的悲伤。(为这些站长 R.I.P 几秒😥)

源的大小带来的影响

不过往往这样的良心 feed 源比其他的只输出最近5/10/15/20条文章的源的大小要大很多,特别是在文章很多很长的情况下。

  • inote ,他的 feed 输出全部文章和全文,有1.5MB。(update:本文发出后,这位博主的 feed 不再输出全部文章)
  • 一大加贝 ,他的 feed 输出全部文章但不输出全文,有0.15MB,如果再输出全文,大小可想而知。
  • ……

独立播客这样的情况更普遍,播客不可能给你只输出最近15期这样来吧,肯定会把从第一期开始的所有节目都放 feed 里。

这里写http压缩大小

box.othing.xyz的订阅

流量很贵

那么如果你每5分钟刷新一次 feed ,对应站点的 feed 大小为 xxx。(这不极端,我看很多人设置的刷新频率都是软件能提供多短,就设置多短,而telegram的rssbot更是只能5分钟刷新一次,还不能改🤒)

那么一个月你将使用60min×24hour×30day÷5min×???MB=??的流量用于刷新该rss。你用流量不要紧,但如果博主使用了付费 cdn 来优化网站访问体验,那博主就需要为cdn支付流量费用

以又拍云CDN的价格为例
又拍云CDN价格-国内0.3元每gb-亚太0.9元每gb-欧美0.4元每gb

你频繁的rss更新并不会像频繁访问网站那样给网站带来大量pv,让博主在浏览后台时收获快乐。Just like:(这么多浏览量,开心开心😜;哇,这个来自重庆的访客把我全部文章都看了,开心开心😝)。
你用rss阅读器看了文章,还真不一定会再去访问博主的网站,除非要去评论留言。

这就意味着博主的cdn账单可能就得为了你而增加几块钱。
听上去不多对吧?

但博主本可以用这几块钱 cdn 费,用在 web 的访问上,给上千个访客更好的 web 体验。

这样博主就在为你能仅仅早几十分钟收到最新文章而被动付费。

热门播客们还好,他们的流量大,所以可以与 CDN 厂商谈拢到几分钱每GB的 CDN 流量价格,但广大中小型博主就没这么幸运了,博客流量总量不大,根本没资格与 CDN 厂商谈条件(这里赞扬一下又拍和七牛,免费的“联盟”计划对于博主们算是福利了)。

如果各位rss使用者大部分没有意识到这个问题,受伤的将会是你所喜欢的博客和播客本身。

为CDN费用发愁的inote.xyz-Blogger
ioiox-Blogger

当然,我知道很多博客使用免费的无限流量的 Cloudflare CDN,对于这类博客的 feed 确实可以想怎么更新就怎么更新。但是 cdn 有缓存啊,你更新再频繁,cdn 不回源拉新版文件,你也没有办法不是。😂

RSS应面向内容而不是面向即时

这有必要吗?博主每个月就产出那几篇文章,无论你是1秒刷新一次,还是一天刷新一次,你一个月其实就只能看到这些个博文。更不用说绝大多说rss爱好者的未读计数都上百上千了。

虽然博客是时间流式的web平台,但是它不是Twitter、微博这样的社会性社交网络,它不是朋友圈或QQ空间。
你用上了 rss ,但你的心没有完全静下来,还在被IM(即时通讯)和社交网络的即时理念所影响。我知道有人用rss来看Twitter,我知道有 PubSubHubbub 技术提高rss本身的即时性和通达性。
但是我想引用这篇文章的一段话:

“需要注意的是,所谓的「实时」只是相对的,通知的发送不可能快过 RSS 服务抓取到订阅源更新的时间,而我们已经知道后者往往存在不可避免的时间差。因此,实时推送功能的作用只是提醒我们不要错过关心的内容;要真正做到分钟级的先知先觉,当今媒体生态下恐怕还是直接瞄准社交网络更为靠谱。”
From 『2018 年主流 RSS 服务选哪家?Feedly、Inoreader 和 NewsBlur 全面横评』
by PlatyHsu 2018-05-04

写到这里我突发奇想。假如你每天会收到一定量的文章,那么延长刷新间隔时间后,平均每次刷新将为你带来更多文章,某种意义上你赚了。“好吧,我这是 短视损失厌恶 的反向举例😗”

现在还在写独立 Blog 和开 Podcast ,哪一个不是兴趣驱动并用爱发电?
So,为了更好的博客/博客以及整个rss生态环境的健康发展,在此倡议各位 rss 同好 :

  • 延长 rss 自动更新时间,最好1小时以上—推荐设为1.5小时。
  • 仅对即时性要求较高的资讯源或论坛源适当缩短刷新间隔。
  • 让更多的 rss 同好们一起提高刷新间隔
  • 让 rss 软件开发者也知道此事。

调低刷新频率

本不应该出现这样的问题

http 缓存

????????

其实 rss 标准在 xml 文件的开头有 lastBuildDate 和 pubDate 参数,atom 标准在开头有 updated 参数。但是…似乎订阅器们都没有仔细认真对待过这些参数。

这几个参数大家理解可能都会不太一样,所以是较少有仔细对待的。 @about_rss

按道理来说,订阅器应该一边下载一边解析。而不是把 feed 下载到本地后再解析。
这样只要订阅器解析到 lastBuildDate/update/pubDate 时间和上一次更新时相同,就终止下载。这样无论多大的源,在源本身没有更新的情况下,每次刷新都只会消耗仅仅几 kb 的流量。

但现在订阅器更多只把这些参数用到了减少数据库重复写入,提高数据库性能上去。而没有用到减少更新 feed 时的流量消耗上。
都是不管三七二十一,先把 feed 下到本地,再对下下来的 feed 文件进行解析处理。

RSS软件们/开发者应该做点什么

当然,实现这样的优化确实相对比较难,毕竟这样需要把 feed 下载到内存中处理(毕竟需要边下载边解析),估计网上还找不到用于处理这样功能的库。

真诚希望各个rss软件开发者在这方面下下功夫。

实在不济,还有个最简单的方案,也是我想倡议的。
在您开发的 rss 软件中,在调整更新频率的页面那里设置一个对话框。只要用户一点击小于45~60分钟的刷新间隔的选项,就弹出对话框,这个对话框需要10秒钟才能点击”我已了解“。上面写有:
“如非绝对必要,我们不推荐使用更高频率的刷新间隔,这可能会对你所订阅的网站造成不必要的流量开销和压力。“

对于博主的建议

如果你的博客 cdn 流量在 feed 这方面消耗大,我个人建议先发一篇文章提醒订阅者降低刷新频率。或通过技术手段,比如将 feed 单独托管在一个不用担心流量消耗的地方(比如github、gitee、coding、Cloudflare Workers等),然后将 feed 的 url 重定向过去。当然,在这个过程中再套一层免费的CDN也是可以的,比如用jsdeliver+github。✌

The End

我知道大部分人设置较短更新间隔时没有考虑到这一点,也许本文部分用词较激进,但这是一个“如果人人都了解了,那么问题就不再存在”的问题。

💪💪

inote.xyz后续
together2

Others&Update

感谢 @about_rss 对于本文的帮助。推荐看看他的 Telgram 频道 All About RSS ,里面都是关于rss的优秀内容!


更正:

2021-01-02 Update:(写得太快,文章有很多问题,感谢以下网友指正)
@AA:
我记得Google reader会根据文章频率自适应刷新频率的,其他的阅读器应该也会
另外就算刷新也可以利用上http缓存,并不会每次都返回完整内容
如果没更新只会返回304 not modified

@BB:
而且也没考虑压缩
故事fm 的 feed 压缩之后 323kB

@AA:
如果用的是通用的http client应该都支持cache,我觉得除非写错了,要不然都应该能想到启用cache吧😅
嗯,但是不知道CDN流量会不会按压缩之后算
@CC:CDN会

@DD:
作者没理解http协议有个etag字段,不需要全部拉取内容也能知道feed是否更新。
否则我早就破产了。
另外cdn费用通常是可以谈的,像我们这种流量比较大的客户,基本可以谈到几分钱每个GB的低价。
另外,像是苹果播客这类比较健全的系统,通常会有一个bot去检查并拉取节目的最新更新,而这个拉取是采用range字段限制拉取的字节数的,他们只比较每个xml文件的前部某个长度的内容是否更新,并将更新通知给客户端拉取,而不是由每个客户端定时各自发起请求,不然以我们用户的体量,也早就被拉死了。overcast甚至小宇宙等客户端通常都有类似的机制。

所以大家尽可以按默认值来,我们撑得住,互联网的老祖宗们早就想到这些问题了,哈哈哈哈。

CC:
emmmmm,我刚刚看了下 gofeed 好像没有做判断(
或许有空去提个pr

我:
“根据文章频率自动调整刷新频率的阅读器还是少数,大多都是 ino,feedly 这样的商业化的服务器端的 rss 订阅器才具备的功能,其实之前是有想到这点,但忘写了😂”(如果我没记错,ttrss 和 freshrss 应该都没有这样的功能)
“http 缓存 和 压缩,我遗漏了这两点。我基础知识没都掌握,发这篇文章丢人显眼了😥,我过度看重于 rss 软件对于 feed 的处理上了,却没考虑最基础的 http ”
但回过头来看,很多PHP动态博客程序是即时生成的RSS,并不是真正放主机上的xml文件,所以没有任何http cache control。
“CDN可以谈到几分钱GB的价格,这个我知道,但是由于这篇文章一开始我的主题是面向那些浏览不大的小博客来讲的,中途才想起来’好像播客在rss方面的消耗应该普遍很大’,所以也忘了在文章中说”

“所以,我们应该更注重让软件开发者来完善这个问题,而不是仅在用户层面上呼吁强调大家降低更新频率之类的”

欢迎转载,无需申请,可衍生,不强求署名。

By yzqzss|一座桥在水上
起草于 2021-01-01
发布于 2021-01-02


附言

话说的很乱,希望别介意:)

看完了这一篇,感觉挺好的,又看到文章可以无需申请就能转载,于是就顺带转载了下

说到rss,我倒是想起了一篇相关文章:当博客已不再流行,我们该何去何从

忆梦小站自建站以来购买服务器&域名的费用大约150元左右,却因为被恶意攻击亏损了220元左右。我所最不能理解的就是,我明明没有招惹你,你为什么要来伤害我。个人博客的站长往往并没有收入,自运营开始便是亏本的历程,受到攻击由于没有公司资金支持和防御往往需要自己掏钱来为攻击者的行为付费。
——当博客已不再流行,我们该何去何从 - 忆梦小站

想下,现在你想搭建博客的话,那你肯定是要个属于自己的域名对吧

以我的cyou域名为例子,在Dynadot上购买10元人民币,续期需要34元人民币

注意是人民币,要不是Dynadot支持支付宝支付我也不会让Eden继续续费me那个域名,因为现在me那个域名续费要起码上百(他在回复我的邮件里提到过这个)

如果你不想部署博客那么麻烦的话那你肯定是要买服务器啊VPS啊来搭建博客对吧

这样算上来你在博客这里一年的开销起码也就超过10元(不算上服务器什么的,毕竟价格相差很多)

然后就是优化访问体验了,最快捷的办法就是上CDN

如果你不想用cf的免费cdn那你要去付费去使用其他cdn商的啊,这个就又要一笔钱了

光是域名,服务器和CDN这三个就够你得花了

那你肯定会说我可以去搞免费域名什么的啊对吧

你强,你博客如果想对外展示那除了宣传也就只有搜索引擎收录对吧

没记错都话现在百度不收录tk等免费域名了….谷歌的还在收录似乎

抛开费用问题吧,前几天上推时我看到这样一个推

呐,内容问题了

你想下,你搭建了博客,但是没写几篇,最后还是关了了事,是不是不值得

然后又想搭建博客了就继续搭建,搭建后又没什么可以写的,最后还是陷入了这个死循环

所以为什么我的网站介绍是“随便写写……”就是这个原因,这样的话起码可以放开话题想写什么就写什么

来~此处我们引用维基百科上对于博客的定义

博客(英语:Blog)是一种在线日记型式的个人网站,借由张帖子章、图片或视频来记录生活、抒发情感或分享信息[1]。博客上的文章通常根据张贴时间,以倒序方式由新到旧排列。
许多博客作者专注评论特定的课题或新闻,其他则作为个人日记。一个典型的博客结合了文字、图像、其他博客或网站的超链接、及其它与主题相关的媒体。能够让读者以互动的方式留下意见,是许多博客的重要要素。大部分的博客内容以文字为主,也有一些博客专注艺术、摄影、视频、音乐、播客等各种主题。博客是社交媒体网络的一部分。

感觉似乎解释不了

嘛反正就是因为费用和内容的问题,能坚持下来的博客似乎也没多少吧…

可能还是会倒贴钱(

毕竟你搞这个是几乎是没有收益的(除非你挂广告或者靠捐款)

资源网的话…你想想啊,你分享那么多资源对吧,那必定会有很多pv和uv对吧

如果再加上广告的话那岂不是赚很多钱?

再想想,现在一些平台和搜索引擎py,那带来的流量也很多对吧

再加上一些激励活动那必定会吸引一大群人来去其他平台写

不用自己花心思搭博客买域名优化SEO什么的对吧

总之,一大堆的原因吧,最后能活下来的,也没多少

现在,平均每十个写着“博客”字样的网站就有7个资源网,还有1个是新建的博客。

许多站长写博客没1周变匆匆退出,因为“博客不赚钱”“博客没人看”“没有题材写”……

而真正努力做的博客,被许多资源网埋在了深处。

——当博客已不再流行,我们该何去何从 - 忆梦小站