Quel est le type MIME correct à utiliser pour un flux RSS?

135

Un type MIME est-il préférable pour assurer la compatibilité avec les lecteurs RSS et autres scrapers?

Les options semblent être:

  • texte / xml
  • texte / rss + xml

Fait intéressant, Stackoverflow utilise text / html.

Steve Claridge
la source

Réponses:

234

Ni. C'est http://www.rssboard.org/rss-mime-type-application.txtapplication/rss+xml

vartec
la source
8
Je suis d'accord que c'est le bon type, cependant, il ne semble pas être bien compris par les navigateurs Web. Il semble que (malheureusement) text / xml soit maintenant un standard de facto.
Samuel EUSTACHI
1
@SamuelEUSTACHI vous avez raison, et la réponse acceptée n'est probablement pas la meilleure pour assurer la compatibilité, comme demandé. Tim Bray en 2003: "d'une manière ou d'une autre, je pense qu'il est probablement important que la communauté se ressaisisse et décide du type de média à utiliser et commence à l'utiliser". Aujourd'hui: voir ma réponse ci-dessous pour la preuve que presque tous les flux populaires utilisent text/xml.
Kai Carver
35

D'autres commentateurs ont souligné que le seul type de mime correct est application/rss+xml,.

Cependant, si vous définissez un en-tête d'acceptation pour un client,

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

peut être un bon choix, car il indique qu'il accepte RSS, Atom et XML (par ordre décroissant ou par préférence).

Robert MacLean
la source
3
L'ordre des en-têtes d'acceptation indique au serveur le contenu à utiliser. Le serveur verra s'il peut proposer que le premier, puis le second etc ... C'est pourquoi le "application / rss + xml" est le meilleur premier choix et "text / xml" comme solution de secours finale est bon.
Robert MacLean
4
En fait, l'ordre des éléments dans l'en-tête Accept n'est pas pertinent. La préférence est indiquée avec le qparamètre . Pour l'effet souhaité, il est donc préférable d'envoyer Accept: application/rss+xml, application/rdf+xml, application/atom+xml, application/xml;q=0.9, text/xml;q=0.8, ce qui signifie "Préférez l'un des types MIME appropriés pour les flux. Si vous ne pouvez pas offrir cela, préférez application/xml. Si vous ne pouvez pas offrir cela, préférez text/xml. Sinon, donnez-moi simplement ce que vous avez "
Magnus Hoff
1
Pour ce que cela vaut, j'ai essayé les deux formes d'en- Accepttêtes suggérées avec les exemples de flux populaires dans ma réponse ci-dessous, et ils sont tous revenus text/xml. J'ai utilisé la commande: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 J'ai travaillé sur un nouveau projet construit avec l'API Web ASP.NET Core 3.1 + Angular 9. J'avais besoin de générer un flux RSS et en comparant la sortie à d'autres sites Web, j'ai réalisé que le type de contenu correct à utiliser est texte / xml. Cependant, le contenu HTML dans les nœuds de description était échappé, la définition des valeurs d'en-tête Accept a résolu le problème. Merci, bravo 🧐🐉
Nexus
14

Voici une réponse pragmatique: quelle que soit la réponse «correcte» (et il y a clairement un débat à ce sujet), text/xmlc'est le type utilisé par à peu près tous les flux populaires dans la nature.

En voici quelques-uns que j'ai vérifiés:

$ 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

Vous pouvez donc être sûr que text/xmlcela sera correctement interprété par les clients RSS couramment utilisés.

Kai Carver
la source
Je n'ai pas vérifié les autres, mais bbci.co.uk envoie maintenant application / rss + xml
Jules
5

Le plus correct estapplication/rss+xml

Le plus compatible estapplication/xml

Selon W3C:

Les flux RSS doivent être servis comme application / rss + xml (RSS 1.0 est un format RDF, il peut donc être servi comme application / rdf + xml à la place). Les flux Atom doivent utiliser application / atom + xml. Alternativement, pour la compatibilité avec les navigateurs Web largement déployés, n'importe lequel de ces flux peut utiliser l'un des types XML les plus généraux - de préférence application / xml.

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

nggit
la source
2

Optez pour l' application MIME / rss + xml pour être sûr si vous voulez vous assurer que votre flux est compatible avec les lecteurs RSS et autres scrapers. C'est ce que j'utilise.

adyoungsfan
la source
1

Vous pouvez utiliser text/xml, mais le type MIME correct serait application/rss+xml.

Cerebrus
la source
3
application/xmlest préférable text/xmlcar XML ne suit pas les règles normales de codage du contenu du texte. Il peut intégrer son encodage dans ses données, ce qui posera des problèmes si des mandataires essaient de transcoder aveuglément le texte. En d'autres termes, les mandataires sont invités à conserver les données octet par octet.
Zenexer
-2

text / xml est la seule bonne réponse. Les types Mime sont un système basé sur l'enregistrement. Il existe une liste officielle gérée par l'IANA (Internet Assigned Numbers Authority) sur http://www.iana.org/assignments/media-types/media-types.xhtml

Code de singe
la source
1
Tous les types MIME dans le monde ne sont pas enregistrés auprès de l'IANA. Plus important encore, rien dans ce document ne suggère l'utilisation de RSS.
Ruben Verborgh
RSS est XML. Il suggère l'utilisation de XML.
Monkey Code
2
Cet argument est insuffisant. RSS est aussi RDF. XML est également du texte. Donc, par ce raisonnement, un type RDF ou texte MIME pourrait également être bon. Cependant, le problème est que tous les documents XML ne sont pas RSS. Un type XML générique n'est donc pas suffisamment spécifique pour identifier sans ambiguïté RSS.
Ruben Verborgh
@RubenVerborgh "rien dans ce document ne suggère l'utilisation de RSS" J'ai utilisé Ctrl + F et j'ai tapé application / atom et il a trouvé application / atom + xml comme l'un des types MIME. Je ne connais pas les autres espaces de noms. Cependant, je pense que application / rss + xml est le meilleur pour 2.0, quel que soit l'espace de noms.
MaxxiBoi