用于 RSS 提要的正确 MIME 类型是啥?

Posted

技术标签:

【中文标题】用于 RSS 提要的正确 MIME 类型是啥?【英文标题】:What is the correct MIME type to use for an RSS feed?用于 RSS 提要的正确 MIME 类型是什么? 【发布时间】:2010-10-10 09:14:09 【问题描述】:

为了确保与 RSS 阅读器和其他抓取工具的兼容性,最好使用一种 MIME 类型吗?

选项似乎是:

文本/xml 文本/rss+xml

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

【问题讨论】:

【参考方案1】:

两者都不是。我是 application/rss+xml http://www.rssboard.org/rss-mime-type-application.txt

【讨论】:

我同意这是正确的类型,但是,Web 浏览器似乎并不能很好地理解它。看起来(可悲的)text/xml 现在是事实上的标准。 @SamuelEUSTACHI 你是对的,并且按照要求,接受的答案可能不是确保兼容性的最佳选择。蒂姆·布雷(Tim Bray)早在 2003 年:“我认为以某种方式,社区齐心协力并决定使用哪种媒体类型并开始使用它可能很重要”。今天:请参阅下面的答案,以证明几乎所有流行的提要都使用text/xml【参考方案2】:

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

【讨论】:

application/xml 优于 text/xml,因为 XML 不遵循正常的文本内容编码规则。它可以将其编码嵌入其数据中,如果代理尝试盲目地对文本进行转码,这将导致问题。换句话说,代理被指示逐字节保存数据。【参考方案3】:

如果您想确保您的提要与 RSS 阅读器和其他抓取工具兼容,请选择 MIME application/rss+xml 以确保安全。这就是我使用的。

【讨论】:

【参考方案4】:

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

但是,如果您要为客户端设置接受标头,那么

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

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

【讨论】:

accept header order 告诉服务器使用什么内容。服务器将查看它是否可以提供第一个,然后是第二个等等......这就是为什么“application/rss+xml”是最好的首选,而“text/xml”作为最终的后备是好的。跨度> 其实Accept头中元素的顺序是无关紧要的。 Preference is indicated with the q parameter,所以为了获得想要的效果,最好发送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 'Content-Type: application/rss+xml' -I $f @KaiCarver 我一直在开发一个使用 ASP.NET Core 3.1 Web API + Angular 9 构建的新项目。我需要生成一个 RSS 提要,并且在将输出与其他网站进行比较时,我意识到要使用的正确 Content-Type 是 text/xml。然而,描述节点中的 HTML 内容被转义,设置 Accept 标头值解决了该问题。谢谢你,干杯??【参考方案5】:

text/xml 是唯一正确的答案。 Mime 类型是基于注册的系统。有一个由 IANA(互联网号码分配机构)管理的官方列表,地址为http://www.iana.org/assignments/media-types/media-types.xhtml

【讨论】:

并非世界上所有的 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 的最佳选择,无论命名空间是什么。【参考方案6】:

这是一个务实的答案:无论“正确”答案是什么(显然对此存在争议),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

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

【讨论】:

其他的还没有检查,但是 bbci.co.uk 现在正在发送 application/rss+xml【参考方案7】:

正确的是application/rss+xml

兼容的是application/xml

根据 W3C:

RSS 提要应以 application/rss+xml 的形式提供(RSS 1.0 是一个 RDF 格式,所以它可以作为 application/rdf+xml 代替)。原子 提要应使用 application/atom+xml。或者,对于 与广泛部署的网络浏览器兼容,这些提要中的任何一个 可以使用一种更通用的 XML 类型——最好是 应用程序/xml。

https://validator.w3.org/feed/docs/warning/UnexpectedContentType.html

【讨论】:

我不认为application/rss+xml有任何实际的兼容性问题,所以使用xml mimetype没有意义。 @MikkoOhtamaa 旧浏览器可能无法正确呈现,因为它们无法识别 mime。使用 application/xml 几乎所有浏览器都会显示一个 xml 文档树而不是纯文本/html 但是您首先不是使用浏览器来呈现 RSS,而是使用 RSS 阅读器。 赞成,总是很高兴看到 W3C 对某种情况的看法,即使它不一定是完美的建议(如果存在这样的事情)。

以上是关于用于 RSS 提要的正确 MIME 类型是啥?的主要内容,如果未能解决你的问题,请参考以下文章

.docx、.pptx 等的正确 MIME 类型是啥?

.docx、.pptx 等的正确 MIME 类型是啥?

MIME 类型是不是需要指定子类型

.mobileprovision 的 MIME 类型是啥

MIME 类型到底是啥 [关闭]

解析 RSS 提要最近一直抛出文档类型定义 (DTD) 错误