Qual è il tipo MIME corretto da utilizzare per un feed RSS?


135

È preferibile un tipo MIME per garantire la compatibilità con lettori RSS e altri raschiatori?

Le opzioni sembrano essere:

  • text / xml
  • text / rss + xml

È interessante notare che Stackoverflow sta usando text / html.

Risposte:


234

8
Sono d'accordo che questo è il tipo corretto, tuttavia, non sembra essere ben compreso dai browser web. Sembra che (purtroppo) text / xml sia ora uno standard di fatto.
Samuel EUSTACHI,

1
@SamuelEUSTACHI hai ragione, e la risposta accettata non è probabilmente la migliore per garantire la compatibilità, come richiesto. Tim Bray nel 2003: "in un modo o nell'altro penso che sia probabilmente importante che la comunità agisca e decida quale tipo di media utilizzare e iniziare a usarlo". Oggi: vedi la mia risposta qui sotto per la prova che praticamente tutti i feed popolari usano text/xml.
Kai Carver,

35

Altri commentatori hanno sottolineato che il singolo tipo MIME corretto è application/rss+xml,.

Tuttavia, se stai impostando un'intestazione accetta per un client, allora

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

potrebbe essere una buona scelta, in quanto afferma che accetta RSS, Atom e XML (in ordine decrescente o preferenza).


3
L'ordine di intestazione accetta indica al server quale contenuto utilizzare. Il server vedrà se può offrire che il primo, poi il secondo ecc ... Ecco perché "application / rss + xml" è la prima scelta migliore e "text / xml" come fallback finale è buono.
Robert MacLean,

4
In effetti, l'ordine degli elementi nell'intestazione Accept è irrilevante. La preferenza è indicata con il qparametro , quindi per l'effetto desiderato sarebbe meglio inviare Accept: application/rss+xml, application/rdf+xml, application/atom+xml, application/xml;q=0.9, text/xml;q=0.8, il che significa "Preferire uno dei tipi MIME corretti per i feed. Se non puoi offrirlo, preferisci application/xml. Se non puoi offrirlo, preferisci text/xml. Altrimenti, dammi quello che hai "
Magnus Hoff,

1
Per quello che vale, ho provato entrambe le forme suggerite di Acceptintestazioni con gli esempi di feed popolari nella mia risposta di seguito, e sono tornati tutti text/xml. Ho usato il 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 Ho lavorato a un nuovo progetto creato con l'API Web ASP.NET Core 3.1 + Angolare 9. Avevo bisogno di generare un feed RSS e, confrontando l'output con altri siti Web, mi sono reso conto che il tipo di contenuto corretto da usare è text / xml. Tuttavia, il contenuto HTML nei nodi descrizione era in fase di escape, l'impostazione dei valori dell'intestazione Accept ha risolto il problema. Grazie, evviva 🧐🐉
Nexus l'

14

Ecco una risposta pragmatica: qualunque sia la risposta "corretta" (e chiaramente c'è un dibattito al riguardo), text/xmlè il tipo usato da quasi tutti i feed popolari in circolazione.

Eccone alcuni che ho verificato:

$ 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

Quindi puoi essere sicuro che text/xmlverrà interpretato correttamente dai client RSS comunemente usati.


Non ho controllato gli altri, ma bbci.co.uk ora sta inviando application / rss + xml
Jules

5

Il più corretto èapplication/rss+xml

Il più compatibile èapplication/xml

Secondo il W3C:

I feed RSS dovrebbero essere offerti come application / rss + xml (RSS 1.0 è un formato RDF, quindi potrebbe essere servito come application / rdf + xml). I feed Atom dovrebbero usare application / atom + xml. In alternativa, per la compatibilità con i browser Web ampiamente distribuiti, ciascuno di questi feed può utilizzare uno dei tipi XML più generali, preferibilmente application / xml.

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



1

È possibile utilizzare text/xml, ma sarebbe il tipo MIME corretto application/rss+xml.


3
application/xmlè preferibile text/xmlperché XML non segue le normali regole di codifica del contenuto testuale. Può incorporare la sua codifica nei suoi dati, il che causerà problemi se i proxy tentano di transcodificare ciecamente il testo. In altre parole, ai proxy viene richiesto di preservare i dati byte per byte.
Zenexer,

-2

text / xml è l'unica risposta corretta. I tipi Mime sono un sistema basato sulla registrazione. C'è un elenco ufficiale gestito da IANA (Internet Assigned Numbers Authority) su http://www.iana.org/assignments/media-types/media-types.xhtml


1
Non tutti i tipi MIME nel mondo sono registrati con IANA. Ancora più importante, nulla in quel documento suggerisce l'utilizzo di RSS.
Ruben Verborgh,

RSS è XML. Suggerisce l'utilizzo per XML.
Codice Monkey

2
Tale argomento è insufficiente. RSS è anche RDF. XML è anche testo. Quindi, con questo ragionamento, anche un tipo MIME RDF o di testo potrebbe essere buono. Tuttavia, il problema è che non tutti i documenti XML sono RSS. Quindi un tipo XML generico non è abbastanza specifico per identificare in modo univoco RSS.
Ruben Verborgh,

@RubenVerborgh "niente in quel documento suggerisce l'utilizzo per RSS" Ho usato Ctrl + F e ho digitato application / atom e ho trovato application / atom + xml come uno dei tipi MIME. Non conosco altri spazi dei nomi. Tuttavia, penso che application / rss + xml sia il migliore per 2.0, indipendentemente dallo spazio dei nomi.
MaxxiBoi
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.