RSS提要使用的正确MIME类型是什么?

RSS提要使用的正确MIME类型是什么?,rss,mime-types,Rss,Mime Types,一种MIME类型是否更适合确保与RSS阅读器和其他scraper的兼容性 选择似乎是: 文本/xml text/rss+xml 有趣的是,Stackoverflow使用的是text/html 都不是。它是应用程序/rss+xml 您可以使用text/xml,但正确的MIME类型应该是application/rss+xml如果您想确保提要与rss阅读器和其他scraper兼容,请确保安全。我就是这么用的 其他评论者指出,唯一正确的mime类型是application/rss+xml, 但是,如

一种MIME类型是否更适合确保与RSS阅读器和其他scraper的兼容性

选择似乎是:

  • 文本/xml
  • text/rss+xml

有趣的是,Stackoverflow使用的是text/html

都不是。它是
应用程序/rss+xml

您可以使用
text/xml
,但正确的MIME类型应该是
application/rss+xml

如果您想确保提要与rss阅读器和其他scraper兼容,请确保安全。我就是这么用的

其他评论者指出,唯一正确的mime类型是
application/rss+xml,

但是,如果要为客户机设置accept标头,则

Accept:application/rss+xml,application/rdf+xml;q=0.8,应用程序/atom+xml;q=0.6,应用程序/xml;q=0.4,text/xml;q=0.4


可能是一个不错的选择,因为它声明它接受RSS、Atom和XML(按降序或优先顺序)。

text/XML是唯一正确的答案。Mime类型是基于注册的系统。IANA(Internet Assigned Numbers Authority)在

上管理着一份官方名单。这里有一个务实的答案:不管“正确”的答案是什么(显然对此存在争议),
text/xml
是几乎所有流行的野外订阅源所使用的类型

以下是我检查过的一些:

$ for f in \
  https://feeds.feedburner.com/TechCrunch/ \
  http://feeds.bbci.co.uk/news/video_and_audio/news_front_page/rss.xml \
  http://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml \
  https://daringfireball.net/thetalkshow/rss \
  http://www.npr.org/rss/podcast.php?id=381444908 \
  http://feeds.serialpodcast.org/serialpodcast \
  http://podcasts.joerogan.net/feed \
  https://feeds.feedburner.com/thetimferrissshow \
  http://feed.thisamericanlife.org/talpodcast ; do \
  curl -s -I $f | fgrep -i Content-Type: ; done
content-type:text/xml; charset=UTF-8
Content-Type: text/xml
Content-Type: text/xml
Content-Type: text/xml;charset=UTF-8
Content-Type: text/xml;charset=UTF-8
Content-Type: text/xml; charset=UTF-8
Content-Type: text/xml; charset=UTF-8
content-type:text/xml; charset=UTF-8
Content-Type: text/xml; charset=UTF-8

因此,您可以确保常用的RSS客户端将正确解释
text/xml

最正确的
application/RSS+xml

最兼容的
应用程序/xml

根据W3C:

RSS提要应该作为application/RSS+xml(RSS 1.0是RDF 格式,因此可以将其用作应用程序/rdf+xml)。原子 提要应该使用application/atom+xml。或者 与广泛部署的web浏览器的兼容性,任何这些源 可以使用一种更通用的XML类型—最好是 application/xml


我同意这是正确的类型,但是,web浏览器似乎不太理解它。看起来(遗憾的是)text/xml现在已经成为事实上的标准。@SamuelEUSTACHI您是对的,并且公认的答案可能不是确保兼容性的最佳答案,正如所要求的那样。蒂姆·布雷(Tim Bray)在2003年说:“不管怎样,我认为很有可能该公司会采取行动,决定使用哪种媒体类型,并开始使用它。”。今天:请参阅下面我的答案,以了解几乎所有流行提要都使用
text/xml
。accept头顺序告诉服务器要使用什么内容。服务器将查看是否可以提供第一个,然后是第二个等等。。。这就是为什么“application/rss+xml”是最好的首选,而“text/xml”作为最后的后备方案是好的。事实上,Accept头中元素的顺序是不相关的,因此,为了达到预期效果,最好发送
Accept:application/rss+xml、application/rdf+xml、application/atom+xml、application/xml;q=0.9,text/xml;q=0.8
,这意味着“对于提要,您更喜欢任何正确的MIME类型。如果您不能提供,则更喜欢
application/xml
。如果您不能提供,则更喜欢
text/xml
。否则,就给我您所拥有的一切吧。”,我在下面的回答中尝试了两种建议的
Accept
标题形式,并给出了流行提要的示例,它们都返回了
text/xml
。我使用命令:
curl-s-H'Accept:application/rss+xml、application/rdf+xml、application/atom+xml、application/xml;q=0.9,text/xml;q=0.8'-H'内容类型:application/rss+xml'-I$f
@kaicaver我一直在致力于一个用ASP.NET Core 3.1 Web API+9构建的新项目。我需要生成一个RSS提要,当将输出与其他网站进行比较时,我意识到要使用的正确内容类型是text/xml。但是,对描述节点中的HTML内容进行转义,设置Accept标头值解决了该问题。谢谢,cheers
application/xml
text/xml
更受欢迎,因为xml不遵循正常的文本内容编码规则。它可以将其编码嵌入到数据中,如果代理试图盲目地对文本进行转码,这将导致问题。换句话说,代理被指示逐字节保存数据。世界上并非所有MIME类型都在IANA注册。更重要的是,该文档中没有任何内容表明RSS.RSS的用法是XML。它暗示了XML的用法,但这个参数是不够的。RSS也是RDF。XML也是文本。因此,通过这种推理,RDF或文本MIME类型也可能是好的。然而,问题是并非所有XML文档都是RSS。因此,通用XML类型不足以明确标识RSS。@RubenVerborgh“该文档中的任何内容都不建议使用RSS”我使用Ctrl+F并键入application/atom,它发现application/atom+XML是MIME类型之一。我不知道其他名称空间。但是,我认为application/rss+xml对于2.0来说是最好的,不管名称空间是什么。我还没有检查其他名称空间,但是bbci.co.uk现在正在发送application/rss+xml