Apa jenis MIME yang benar untuk digunakan untuk umpan RSS?

135

Apakah satu jenis MIME lebih disukai untuk memastikan kompatibilitas dengan pembaca RSS dan pencakar lainnya?

Pilihannya tampaknya:

  • teks / xml
  • teks / rss + xml

Menariknya Stackoverflow menggunakan teks / html.

Steve Claridge
sumber

Jawaban:

233

Tidak juga. Ini http://www.rssboard.org/rss-mime-type-application.txtapplication/rss+xml

vartec
sumber
8
Saya setuju ini adalah tipe yang benar, namun, sepertinya tidak dipahami dengan baik oleh browser web. Sepertinya (sayangnya) teks / xml sekarang menjadi standar de facto.
Samuel EUSTACHI
1
@SamuelEUSTACHI Anda benar, dan jawaban yang diterima mungkin bukan yang terbaik untuk memastikan kompatibilitas, seperti yang diminta. Tim Bray pada tahun 2003: "dengan satu atau lain cara saya pikir mungkin penting bagi komunitas untuk bertindak bersama dan memutuskan jenis Media apa yang akan digunakan dan mulai menggunakannya". Hari ini: lihat jawaban saya di bawah ini untuk bukti bahwa hampir semua feed populer digunakan text/xml.
Kai Carver
35

Komentator lain menunjukkan bahwa tipe mime yang benar adalah application/rss+xml,.

Namun, jika Anda menetapkan header accept untuk klien, maka

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

mungkin merupakan pilihan yang baik, karena menyatakan menerima RSS, Atom, dan XML (dalam urutan atau preferensi menurun).

Robert MacLean
sumber
3
Urutan header terima memberi tahu server konten apa yang akan digunakan. Server akan melihat apakah ia dapat menawarkan yang pertama, lalu yang kedua dll ... Itulah mengapa "application / rss + xml" adalah pilihan pertama terbaik dan "text / xml" sebagai fallback akhir yang baik.
Robert MacLean
4
Bahkan, urutan elemen di header Terima tidak relevan. Preferensi ditunjukkan dengan qparameter , jadi untuk efek yang diinginkan akan lebih baik untuk mengirim Accept: application/rss+xml, application/rdf+xml, application/atom+xml, application/xml;q=0.9, text/xml;q=0.8, yang berarti "Memilih salah satu jenis MIME yang benar untuk umpan. Jika Anda tidak dapat menawarkan itu, pilih application/xml. Jika Anda tidak dapat menawarkan itu, lebih suka text/xml. Kalau tidak, berikan saja apa yang kamu punya "
Magnus Hoff
1
Untuk apa nilainya, saya mencoba kedua bentuk Accepttajuk yang disarankan dengan contoh umpan populer dalam jawaban saya di bawah, dan semuanya kembali text/xml. Saya menggunakan perintah: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 Saya telah mengerjakan proyek baru yang dibangun dengan ASP.NET Core 3.1 Web API + Angular 9. Saya perlu membuat umpan RSS dan ketika membandingkan output ke situs web lain, saya menyadari Tipe Konten yang tepat untuk digunakan adalah teks / xml. Namun konten HTML di node deskripsi sedang melarikan diri, pengaturan nilai header Terima menyelesaikan masalah. Terima kasih, tepuk tangan 🧐🐉
Nexus
14

Inilah jawaban pragmatis: apa pun jawaban yang "benar" (dan jelas ada perdebatan tentang ini), text/xmladalah jenis yang digunakan oleh hampir semua umpan populer di luar sana di alam liar.

Berikut adalah beberapa yang saya periksa:

$ 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

Jadi Anda bisa yakin bahwa itu text/xmlakan ditafsirkan dengan benar oleh klien RSS yang biasa digunakan.

Kai Carver
sumber
Belum memeriksa yang lain, tetapi bbci.co.uk sekarang mengirimkan aplikasi / rss + xml
Jules
5

Yang paling benar adalahapplication/rss+xml

Yang paling kompatibel adalahapplication/xml

Menurut W3C:

Umpan RSS harus disajikan sebagai aplikasi / rss + xml (RSS 1.0 adalah format RDF, sehingga dapat disajikan sebagai aplikasi / rdf + xml sebagai gantinya). Feed atom harus menggunakan aplikasi / atom + xml. Sebagai alternatif, untuk kompatibilitas dengan browser web yang digunakan secara luas, salah satu feed ini dapat menggunakan salah satu dari tipe XML yang lebih umum - lebih disukai aplikasi / xml.

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

nggit
sumber
2

Gunakan aplikasi MIME / rss + xml agar aman jika Anda ingin memastikan umpan Anda kompatibel dengan pembaca RSS dan pengikis lainnya. Itu yang saya gunakan.

adyoungsfan
sumber
1

Anda bisa menggunakan text/xml, tetapi tipe MIME yang benar adalah application/rss+xml.

Cerebrus
sumber
3
application/xmllebih disukai text/xmlkarena XML tidak mengikuti aturan pengkodean konten teks normal. Ini dapat menyematkan penyandiannya dalam datanya, yang akan menyebabkan masalah jika proksi mencoba membobol transkode teks. Dengan kata lain, proxy diperintahkan untuk menyimpan data byte-for-byte.
Zenexer
-2

teks / xml adalah satu-satunya jawaban yang benar. Jenis pantomim adalah sistem berbasis registrasi. Ada daftar resmi yang dikelola oleh IANA (Internet Assigned Numbers Authority) di http://www.iana.org/assignments/media-types/media-types.xhtml

Kode Monyet
sumber
1
Tidak semua jenis MIME di dunia terdaftar di IANA. Lebih penting lagi, tidak ada dalam dokumen yang menyarankan penggunaan untuk RSS.
Ruben Verborgh
RSS adalah XML. Ini menyarankan penggunaan untuk XML.
Monkey Code
2
Argumen itu tidak cukup. RSS juga RDF. XML juga teks. Jadi dengan alasan ini, jenis RDF atau teks MIME juga bisa bagus. Namun, masalahnya adalah tidak semua dokumen XML adalah RSS. Jadi tipe XML generik tidak cukup spesifik untuk mengidentifikasi RSS secara jelas.
Ruben Verborgh
@RubenVerborgh "tidak ada dalam dokumen yang menyarankan penggunaan untuk RSS" Saya menggunakan Ctrl + F dan saya mengetikkan aplikasi / atom dan menemukan aplikasi / atom + xml sebagai salah satu dari tipe MIME. Saya tidak tahu tentang ruang nama lain. Namun, saya pikir aplikasi / rss + xml adalah yang terbaik untuk 2.0, tidak peduli apa namespace itu.
MaxxiBoi