È 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.
È preferibile un tipo MIME per garantire la compatibilità con lettori RSS e altri raschiatori?
Le opzioni sembrano essere:
È interessante notare che Stackoverflow sta usando text / html.
Risposte:
Né. È http://www.rssboard.org/rss-mime-type-application.txtapplication/rss+xml
text/xml
.
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).
q
parametro , 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 "
Accept
intestazioni 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
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/xml
verrà interpretato correttamente dai client RSS comunemente usati.
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
Andare per MIME application / rss + xml per essere sicuri se si vuole assicurarsi che il proprio feed è compatibile con i lettori RSS e altre ruspe. Questo è quello che uso.
È possibile utilizzare text/xml
, ma sarebbe il tipo MIME corretto application/rss+xml
.
application/xml
è preferibile text/xml
perché 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.
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