Qual é o tipo MIME correto para usar em um feed RSS?

134

É preferível um tipo MIME para garantir a compatibilidade com leitores de RSS e outros raspadores?

As opções parecem ser:

  • text / xml
  • texto / rss + xml

Curiosamente, o Stackoverflow está usando text / html.

Steve Claridge
fonte

Respostas:

233

Nem. É http://www.rssboard.org/rss-mime-type-application.txtapplication/rss+xml

vartec
fonte
8
Concordo que este é o tipo correto, no entanto, não parece ser bem compreendido pelos navegadores da web. Parece que (infelizmente) text / xml agora é um padrão de fato.
Samuel EUSTACHI
1
@SamuelEUSTACHI, você está certo, e a resposta aceita provavelmente não é a melhor para garantir a compatibilidade, conforme solicitado. Tim Bray em 2003: "de uma forma ou de outra, acho que provavelmente é importante que a comunidade ajude e decida qual tipo de mídia usar e comece a usá-lo". Hoje: veja minha resposta abaixo para obter evidências de que praticamente todos os feeds populares usam text/xml.
perfil completo de Kai Carver
35

Outros comentaristas apontaram que o único tipo de mímica correto é application/rss+xml,.

No entanto, se você estiver configurando um cabeçalho de aceitação para um cliente,

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

pode ser uma boa opção, pois afirma que aceita RSS, Atom e XML (em ordem decrescente ou preferência).

Robert MacLean
fonte
3
A ordem do cabeçalho de aceitação informa ao servidor qual conteúdo usar. O servidor verificará se ele pode oferecer o primeiro, depois o segundo etc ... É por isso que "application / rss + xml" é a melhor primeira opção e "text / xml" como um fallback final é bom.
Robert MacLean
4
De fato, a ordem dos elementos no cabeçalho Accept é irrelevante. A preferência é indicada com o qparâmetro , portanto, para o efeito desejado, seria melhor enviar Accept: application/rss+xml, application/rdf+xml, application/atom+xml, application/xml;q=0.9, text/xml;q=0.8, o que significa "Prefira qualquer um dos tipos MIME corretos para feeds. Se você não puder oferecer isso, prefira application/xml. Se não puder oferecer isso, preferem text/xmlCaso contrário, apenas me dê o que você tem".
Magnus Hoff
1
Pelo que vale, tentei as duas formas sugeridas de Acceptcabeçalhos com os exemplos de feeds populares na minha resposta abaixo e todos eles retornaram text/xml. Eu usei o 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 Estou trabalhando em um novo projeto criado com a API Web ASP.NET Core 3.1 + Angular 9. Eu precisava gerar um feed RSS e, ao comparar a saída com outros sites, percebi que o Tipo de Conteúdo correto a ser usado é texto / xml. No entanto, o conteúdo HTML nos nós de descrição estava sendo escapado. A configuração dos valores do cabeçalho Aceitar resolveu o problema. Obrigado, felicidades 🧐🐉
Nexus
14

Aqui está uma resposta pragmática: qualquer que seja a resposta "correta" (e claramente há um debate sobre isso), text/xmlé o tipo usado por praticamente todos os feeds populares disponíveis na natureza.

Aqui estão alguns que eu verifiquei:

$ 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

Portanto, você pode ter certeza de que text/xmlserá interpretado corretamente pelos clientes de RSS mais usados.

Kai Carver
fonte
Já não verificou os outros, mas bbci.co.uk agora está enviando application / rss + xml
Jules
5

O mais correto éapplication/rss+xml

O mais compatível éapplication/xml

De acordo com o W3C:

Os feeds RSS devem ser veiculados como application / rss + xml (o RSS 1.0 é um formato RDF, portanto, pode ser veiculado como application / rdf + xml). Os feeds Atom devem usar application / atom + xml. Como alternativa, para compatibilidade com navegadores da Web amplamente implantados, qualquer um desses feeds pode usar um dos tipos XML mais gerais - de preferência application / xml.

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

nggit
fonte
2

Vá para o aplicativo MIME / rss + xml para ser seguro se quiser garantir que seu feed seja compatível com leitores de RSS e outros raspadores. É isso que eu uso.

adyoungsfan
fonte
1

Você poderia usar text/xml, mas o tipo MIME correto seria application/rss+xml.

Cerebrus
fonte
3
application/xmlé preferível, text/xmlporque o XML não segue as regras normais de codificação de conteúdo de texto. Ele pode incorporar sua codificação nos dados, o que causará problemas se os proxies tentarem transcodificar cegamente o texto. Em outras palavras, os proxies são instruídos a preservar os dados byte a byte.
Zenexer 27/05
-2

text / xml é a única resposta correta. Os tipos MIME são um sistema baseado em registro. Há uma lista oficial gerenciada pela IANA (Autoridade para atribuição de números da Internet) em http://www.iana.org/assignments/media-types/media-types.xhtml

Monkey Code
fonte
1
Nem todos os tipos de MIME no mundo estão registrados na IANA. Mais importante, nada nesse documento sugere o uso de RSS.
precisa saber é o seguinte
RSS é XML. Ele sugere o uso de XML.
Código de Macaco
2
Esse argumento é insuficiente. RSS também é RDF. XML também é texto. Portanto, por esse raciocínio, um tipo RDF ou MIME de texto também pode ser bom. No entanto, o problema é que nem todos os documentos XML são RSS. Portanto, um tipo XML genérico não é específico o suficiente para identificar sem ambiguidade o RSS.
Ruben Verborgh
@RubenVerborgh "nada no documento sugere uso para RSS" Eu usei Ctrl + F e digitei application / atom e ele encontrou application / atom + xml como um dos tipos MIME. Não conheço outros espaços para nome. No entanto, acho que application / rss + xml é o melhor para 2.0, não importa qual seja o espaço para nome.
MaxxiBoi