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.

Réponses:


234

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).


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.


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



1

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


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


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.