É 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.
É preferível um tipo MIME para garantir a compatibilidade com leitores de RSS e outros raspadores?
As opções parecem ser:
Curiosamente, o Stackoverflow está usando text / html.
Respostas:
Nem. É http://www.rssboard.org/rss-mime-type-application.txtapplication/rss+xml
text/xml
.
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).
q
parâ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/xml
Caso contrário, apenas me dê o que você tem".
Accept
cabeç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
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/xml
será interpretado corretamente pelos clientes de RSS mais usados.
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
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.
Você poderia usar text/xml
, mas o tipo MIME correto seria application/rss+xml
.
application/xml
é preferível, text/xml
porque 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.
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