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.
Un type MIME est-il préférable pour assurer la compatibilité avec les lecteurs RSS et autres scrapers?
Les options semblent être:
Fait intéressant, Stackoverflow utilise text / html.
Réponses:
Ni. C'est http://www.rssboard.org/rss-mime-type-application.txtapplication/rss+xml
text/xml
.
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).
q
paramè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 "
Accept
tê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
Voici une réponse pragmatique: quelle que soit la réponse «correcte» (et il y a clairement un débat à ce sujet), text/xml
c'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/xml
cela sera correctement interprété par les clients RSS couramment utilisés.
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
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.
Vous pouvez utiliser text/xml
, mais le type MIME correct serait application/rss+xml
.
application/xml
est préférable text/xml
car 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.
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