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.

Respostas:


233

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


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.


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



1

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


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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.