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


134

为了确保与RSS阅读器和其他刮板的兼容性,是否最好使用一种MIME类型?

选项似乎是:

  • 文字/ xml
  • 文字/ rss + xml

有趣的是,Stackoverflow正在使用text / html。

Answers:


233

都不行 这是http://www.rssboard.org/rss-mime-type-application.txtapplication/rss+xml


8
我同意这是正确的类型,但是,Web浏览器似乎不太了解它。看起来(可悲的)text / xml现在是事实上的标准。
塞缪尔·EUSTACHI

1
@SamuelEUSTACHI,您是正确的,按照要求,接受的答案可能不是确保兼容性的最佳方法。蒂姆·布雷(Tim Bray)早在2003年说:“我认为,社区共同采取行动并决定使用哪种媒体类型并开始使用它,可能很重要。” 今天:请参阅下面的答案,以获取几乎所有流行的供稿都使用的证据text/xml
Kai Carver

35

其他评论者指出,单个正确的哑剧类型是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(按降序或首选项)。


3
accept标头顺序告诉服务器要使用什么内容。服务器将查看是否可以提供第一个,然后提供第二个,等等。这就是为什么“ application / rss + xml”是最佳的首选,而“ text / xml”作为最终的替代是好的。
罗伯特·麦克莱恩

4
实际上,Accept标头中元素的顺序无关紧要。首选q参数用参数表示,因此,为达到理想效果,最好发送Accept: application/rss+xml, application/rdf+xml, application/atom+xml, application/xml;q=0.9, text/xml;q=0.8,这意味着“首选首选Feed的任何正确MIME类型。如果不能提供,请首选application/xml。如果不能提供,喜欢text/xml否则,只给我你有什么。”
马格努斯·霍夫

1
出于价值考虑,我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
Kai Carver

@KaiCarver我一直在研究一个使用ASP.NET Core 3.1 Web API + Angular 9构建的新项目。我需要生成一个RSS feed,并将输出与其他网站进行比较时,我意识到要使用的正确Content-Type是文字/ xml。但是,描述节点中的HTML内容已被转义,设置Accept标头值解决了该问题。谢谢你,欢呼声🧐🐉
的Nexus

14

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

5

正确的application/rss+xml

兼容的application/xml

根据W3C:

RSS feed应该作为application / rss + xml来使用(RSS 1.0是RDF格式,因此它可以作为application / rdf + xml来使用)。Atom供稿应使用application / atom + xml。另外,为了与广泛使用的Web浏览器兼容,这些提要中的任何一个都可以使用一种更通用的XML类型-优选为application / xml。

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



1

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


3
application/xml之所以优先使用text/xmlXML,是因为XML不遵循正常的文本内容编码规则。它可以将其编码嵌入其数据中,如果代理尝试对文本进行盲目转码,则将导致问题。换句话说,指示代理以字节为单位保存数据。
Zenexer 2014年

-2

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


1
并非世界上所有的MIME类型都向IANA注册。更重要的是,该文档中没有任何内容建议使用RSS。
Ruben Verborgh'2

RSS是XML。它建议使用XML。
猴子代码

2
这种说法是不够的。RSS也是RDF。XML也是文本。因此,通过这种推理,RDF或文本MIME类型也可能很好。但是,麻烦在于并非所有XML文档都是RSS。因此,通用XML类型不够明确,无法明确标识RSS。
Ruben Verborgh '16

@RubenVerborgh“该文档中没有任何内容建议使用RSS”我使用Ctrl + F,然后键入application / atom,它发现application / atom + xml是MIME类型之一。我不知道其他名称空间。但是,无论名称空间是什么,我都认为application / rss + xml是2.0的最佳选择。
MaxxiBoi
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.