¿Cuál es el tipo MIME correcto para usar en una fuente RSS?

135

¿Es preferible un tipo MIME para garantizar la compatibilidad con lectores RSS y otros raspadores?

Las opciones parecen ser:

  • texto / xml
  • texto / rss + xml

Curiosamente, Stackoverflow está usando text / html.

Steve Claridge
fuente

Respuestas:

233

Ninguno. Es http://www.rssboard.org/rss-mime-type-application.txtapplication/rss+xml

vartec
fuente
8
Estoy de acuerdo en que este es el tipo correcto, sin embargo, no parece ser bien entendido por los navegadores web. Parece que (lamentablemente) text / xml ahora es un estándar de facto.
Samuel EUSTACHI
1
@SamuelEUSTACHI tiene razón, y la respuesta aceptada probablemente no sea la mejor para garantizar la compatibilidad, según lo solicitado. Tim Bray en 2003: "de una forma u otra, creo que es importante que la comunidad actúe de manera conjunta y decida qué tipo de medio usar y comenzar a usarlo". Hoy: vea mi respuesta a continuación para ver pruebas de que utilizan casi todos los feeds populares text/xml.
Kai Carver
35

Otros comentaristas han señalado que el único tipo mime correcto es application/rss+xml,.

Sin embargo, si está configurando un encabezado de aceptación para un cliente, entonces

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

podría ser una buena opción, ya que establece que acepta RSS, Atom y XML (en orden descendente o preferencia).

Robert MacLean
fuente
3
El orden de aceptar encabezado le dice al servidor qué contenido usar. El servidor verá si puede ofrecer eso primero, luego el segundo, etc.
Robert MacLean
44
De hecho, el orden de los elementos en el encabezado Aceptar es irrelevante. La preferencia se indica con el qparámetro , por lo que para el efecto deseado sería mejor enviar Accept: application/rss+xml, application/rdf+xml, application/atom+xml, application/xml;q=0.9, text/xml;q=0.8, lo que significa "Prefiere cualquiera de los tipos MIME correctos para feeds. Si no puedes ofrecer eso, prefiere application/xml. Si no puedes ofrecer eso, prefiera text/xml. De lo contrario, solo dame lo que tienes "
Magnus Hoff
1
Para lo que vale, probé las dos formas sugeridas de Acceptencabezados con los ejemplos de feeds populares en mi respuesta a continuación, y todos regresaron text/xml. Usé el comando: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 He estado trabajando en un nuevo proyecto creado con ASP.NET Core 3.1 Web API + Angular 9. Necesitaba generar una fuente RSS y, al comparar la salida con otros sitios web, me di cuenta de que el tipo de contenido correcto es texto / xml. Sin embargo, se estaba escapando el contenido HTML en los nodos de descripción, la configuración de los valores del encabezado Aceptar resolvió el problema. Gracias, saludos 🧐🐉
Nexus
14

Aquí hay una respuesta pragmática: cualquiera que sea la respuesta "correcta" (y claramente hay debate sobre esto), text/xmles el tipo utilizado por casi todos las fuentes populares en la naturaleza.

Aquí hay algunos que revisé:

$ 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

Por lo tanto, puede estar seguro de que text/xmlserá interpretado correctamente por los clientes RSS de uso común.

Kai Carver
fuente
No he comprobado los otros, pero bbci.co.uk ahora está enviando application / rss + xml
Julio
5

Lo más correcto esapplication/rss+xml

El más compatible esapplication/xml

De acuerdo con W3C:

Las fuentes RSS deben servirse como application / rss + xml (RSS 1.0 es un formato RDF, por lo que puede servirse como application / rdf + xml). Las fuentes de Atom deben usar application / atom + xml. Alternativamente, para la compatibilidad con navegadores web ampliamente implementados, cualquiera de estos canales puede usar uno de los tipos XML más generales, preferiblemente aplicación / xml.

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

nggit
fuente
2

Vaya a MIME application / rss + xml para estar seguro si desea asegurarse de que su feed sea compatible con lectores RSS y otros raspadores. Eso es lo que yo uso.

adyoungsfan
fuente
1

Usted podría utilizar text/xml, pero el tipo MIME correcto sería application/rss+xml.

Cerebro
fuente
3
application/xmlse prefiere text/xmlporque XML no sigue las reglas normales de codificación de contenido de texto. Puede incrustar su codificación en sus datos, lo que causará problemas si los proxies intentan transcodificar ciegamente el texto. En otras palabras, los proxies tienen instrucciones de preservar los datos byte por byte.
Zenexer
-2

text / xml es la única respuesta correcta. Los tipos MIME son un sistema basado en el registro. Hay una lista oficial administrada por IANA (Autoridad de Números Asignados de Internet) en http://www.iana.org/assignments/media-types/media-types.xhtml

Código mono
fuente
1
No todos los tipos MIME en el mundo están registrados con IANA. Más importante aún, nada en ese documento sugiere el uso de RSS.
Ruben Verborgh
RSS es XML. Sugiere el uso de XML.
Código de mono
2
Ese argumento es insuficiente. RSS también es RDF. XML también es texto. Entonces, según este razonamiento, un tipo RDF o MIME de texto también podría ser bueno. Sin embargo, el problema es que no todos los documentos XML son RSS. Por lo tanto, un tipo XML genérico no es lo suficientemente específico como para identificar RSS sin ambigüedades.
Ruben Verborgh
@RubenVerborgh "nada en ese documento sugiere el uso de RSS" Usé Ctrl + F y escribí application / atom y encontré application / atom + xml como uno de los tipos MIME. No sé sobre otros espacios de nombres. Sin embargo, creo que application / rss + xml es lo mejor para 2.0, sin importar cuál sea el espacio de nombres.
MaxxiBoi