Ist ein MIME-Typ vorzuziehen, um die Kompatibilität mit RSS-Readern und anderen Scrapern sicherzustellen?
Die Optionen scheinen zu sein:
- text / xml
- text / rss + xml
Interessanterweise verwendet Stackoverflow Text / HTML.
Ist ein MIME-Typ vorzuziehen, um die Kompatibilität mit RSS-Readern und anderen Scrapern sicherzustellen?
Die Optionen scheinen zu sein:
Interessanterweise verwendet Stackoverflow Text / HTML.
Antworten:
Weder. Es ist http://www.rssboard.org/rss-mime-type-application.txtapplication/rss+xml
text/xml
.
Andere Kommentatoren haben darauf hingewiesen, dass der einzige richtige MIME-Typ ist application/rss+xml,
.
Wenn Sie jedoch einen Akzeptanzheader für einen Client festlegen, dann
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
Dies ist möglicherweise eine gute Wahl, da RSS, Atom und XML (in absteigender Reihenfolge oder Präferenz) akzeptiert werden.
q
Parameter angegeben . Für den gewünschten Effekt ist es daher besser zu senden Accept: application/rss+xml, application/rdf+xml, application/atom+xml, application/xml;q=0.9, text/xml;q=0.8
. Dies bedeutet: "Bevorzugen Sie einen der richtigen MIME-Typen für Feeds. Wenn Sie das nicht anbieten können, bevorzugen Sie application/xml
. Wenn Sie das nicht anbieten können, lieber text/xml
. Ansonsten gib mir einfach was du hast "
Accept
Headern mit den Beispielen für beliebte Feeds in meiner Antwort unten , und alle sind zurückgekehrt text/xml
. Ich benutzte den Befehl: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
Hier ist eine pragmatische Antwort: Was auch immer die "richtige" Antwort sein mag (und es gibt eindeutig Debatten darüber), text/xml
ist der Typ, der von so ziemlich allen populären Feeds in freier Wildbahn verwendet wird.
Hier sind einige, die ich überprüft habe:
$ 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
So können Sie sicher sein, dass text/xml
dies von häufig verwendeten RSS-Clients korrekt interpretiert wird.
Das richtigste istapplication/rss+xml
Am kompatibelsten istapplication/xml
Laut W3C:
RSS-Feeds sollten als application / rss + xml bereitgestellt werden (RSS 1.0 ist ein RDF-Format, daher kann es stattdessen als application / rdf + xml bereitgestellt werden). Atom-Feeds sollten application / atom + xml verwenden. Aus Gründen der Kompatibilität mit weit verbreiteten Webbrowsern kann jeder dieser Feeds alternativ einen der allgemeineren XML-Typen verwenden - vorzugsweise application / xml.
https://validator.w3.org/feed/docs/warning/UnexpectedContentType.html
Wählen Sie MIME application / rss + xml , um sicherzugehen, dass Ihr Feed mit RSS-Readern und anderen Scrapern kompatibel ist. Das benutze ich.
Sie könnten verwenden text/xml
, aber der richtige MIME-Typ wäre application/rss+xml
.
application/xml
wird bevorzugt, text/xml
da XML nicht den normalen Regeln für die Codierung von Textinhalten folgt. Es kann seine Codierung in seine Daten einbetten, was zu Problemen führen kann, wenn Proxys versuchen, den Text blind zu transkodieren. Mit anderen Worten, Proxys werden angewiesen, die Daten Byte für Byte beizubehalten.
text / xml ist die einzig richtige Antwort. MIME-Typen sind ein registrierungsbasiertes System. Unter http://www.iana.org/assignments/media-types/media-types.xhtml gibt es eine offizielle Liste, die von der IANA (Internet Assigned Numbers Authority) verwaltet wird