RSS beslemesi için kullanılacak doğru MIME türü nedir?


135

RSS okuyucuları ve diğer sıyırıcılarla uyumluluğu sağlamak için bir MIME türü tercih edilir mi?

Seçenekler şöyle görünüyor:

  • text / xml
  • text / rss + xml

İlginç bir şekilde Stackoverflow, text / html kullanıyor.

Yanıtlar:


234

8
Bunun doğru tür olduğuna katılıyorum, ancak web tarayıcıları tarafından iyi anlaşılmıyor gibi görünüyor. Görünüşe göre (ne yazık ki) text / xml artık fiili bir standart.
Samuel EUSTACHI

1
@SamuelEUSTACHI haklısınız ve kabul edilen cevap muhtemelen istendiği gibi uyumluluğu sağlamak için en iyisi değil. Tim Bray 2003'te geri döndü: "Öyle ya da böyle, topluluğun birlikte hareket etmesi ve hangi Medya türünü kullanacağına karar vermesi ve onu kullanmaya başlamasının önemli olduğunu düşünüyorum". Bugün: hemen hemen tüm popüler yayınların kullandığı kanıt için aşağıdaki cevabıma bakın text/xml.
Kai Carver

35

Diğer yorumcular, tek doğru mime türünün olduğuna işaret ettiler application/rss+xml,.

Ancak, bir müşteri için bir kabul başlığı ayarlıyorsanız,

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

RSS, Atom ve XML (azalan sırayla veya tercihle) kabul ettiğini belirttiğinden iyi bir seçim olabilir.


3
Kabul başlığı sırası, sunucuya hangi içeriğin kullanılacağını söyler. Sunucu birinciyi, sonra ikinciyi sunup sunamayacağını görecek ... Bu yüzden "application / rss + xml" en iyi ilk tercihtir ve "text / xml" son geri dönüş olarak iyidir.
Robert MacLean

4
Aslında, Accept başlığındaki öğelerin sırası ilgisizdir. Tercih qparametre ile belirtilmiştir , bu nedenle istenen efekt için göndermek daha iyi olacaktır Accept: application/rss+xml, application/rdf+xml, application/atom+xml, application/xml;q=0.9, text/xml;q=0.8, bu da "Yayınlar için doğru MIME türlerinden herhangi birini tercih edin application/xml. Bunu sunamıyorsanız tercih edin . Bunu sunamazsanız , tercih et text/xml. Aksi takdirde, bana sahip olduğunu ver "
Magnus Hoff

1
Değeri ne olursa olsun, önerilen Acceptbaşlıkların her ikisini de aşağıdaki cevabımda popüler yayın örnekleriyle denedim ve hepsi geri döndü text/xml. Şu komutu kullandım: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 ASP.NET Core 3.1 Web API + Angular 9 ile oluşturulmuş yeni bir proje üzerinde çalışıyorum. Bir RSS beslemesi oluşturmam gerekiyordu ve çıktıyı diğer web siteleriyle karşılaştırırken, kullanmak için doğru Content-Type olduğunu fark ettim. text / xml. Bununla birlikte, açıklama düğümlerindeki HTML içeriğinden kaçılıyordu ve Kabul başlık değerlerinin ayarlanması sorunu çözdü. Teşekkürler, alkışlar 🧐🐉
Nexus

14

İşte pragmatik bir cevap: "doğru" cevap ne olursa olsun (ve bununla ilgili tartışmalar var), vahşi doğada text/xmlneredeyse tüm popüler yayınların kullandığı türdür .

İşte kontrol ettiğim birkaç tanesi:

$ 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

Böylece text/xml, yaygın olarak kullanılan RSS istemcileri tarafından doğru şekilde yorumlanacağından emin olabilirsiniz .


Diğerlerini kontrol etmedim, ancak bbci.co.uk şimdi application / rss + xml gönderiyor
Jules

5

En doğru isapplication/rss+xml

En uyumlu olanıapplication/xml

W3C'ye göre:

RSS beslemeleri application / rss + xml olarak sunulmalıdır (RSS 1.0 bir RDF formatıdır, bu nedenle bunun yerine application / rdf + xml olarak sunulabilir). Atom beslemeleri application / atom + xml kullanmalıdır. Alternatif olarak, yaygın olarak kullanılan web tarayıcılarıyla uyumluluk için, bu beslemelerden herhangi biri daha genel XML türlerinden birini, tercihen application / xml'yi kullanabilir.

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



1

Sen olabilir kullanmak text/xml, ancak doğru MIME türü olacaktır application/rss+xml.


3
application/xmltext/xmlXML normal metin içeriği kodlama kurallarına uymadığı için tercih edilir . Vekillerin metni körü körüne dönüştürmeye çalışması durumunda, kodlamasını verilerinin içine gömebilir. Başka bir deyişle, proxy'lere veri baytını bayt için koruma talimatı verilir.
Zenexer

-2

text / xml tek doğru cevaptır. Mime türleri kayıt tabanlı bir sistemdir. Http://www.iana.org/assignments/media-types/media-types.xhtml adresinde IANA (İnternet Tahsisli Sayılar Otoritesi) tarafından yönetilen resmi bir liste bulunmaktadır.


1
Dünyadaki tüm MIME türleri IANA'ya kayıtlı değildir. Daha da önemlisi, bu belgedeki hiçbir şey RSS için kullanım önermiyor.
Ruben Verborgh

RSS, XML'dir. XML için kullanım önerir.
Monkey Code

2
Bu argüman yetersiz. RSS ayrıca RDF'dir. XML aynı zamanda metindir. Bu nedenle, bir RDF veya metin MIME türü de iyi olabilir. Ancak sorun, tüm XML belgelerinin RSS olmamasıdır. Dolayısıyla, genel bir XML türü, RSS'yi açık bir şekilde tanımlamak için yeterince spesifik değildir.
Ruben Verborgh

@RubenVerborgh "o belgedeki hiçbir şey RSS için kullanılmasını önermez" Ctrl + F kullandım ve application / atom yazdım ve MIME türlerinden biri olarak application / atom + xml buldu. Diğer ad alanlarını bilmiyorum. Bununla birlikte, ad alanı ne olursa olsun, application / rss + xml'nin 2.0 için en iyisi olduğunu düşünüyorum.
MaxxiBoi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.