Loại MIME chính xác để sử dụng cho nguồn cấp RSS là gì?


134

Là một loại MIME thích hợp hơn để đảm bảo khả năng tương thích với trình đọc RSS và các trình dọn dẹp khác?

Các tùy chọn dường như là:

  • văn bản / xml
  • văn bản / rss + xml

Thú vị là Stackoverflow đang sử dụng văn bản / html.

Câu trả lời:


233

Cũng không. Đó là http://www.rssboard.org/rss-mime-type-application.txtapplication/rss+xml


8
Tôi đồng ý đây là loại chính xác, tuy nhiên, nó dường như không được các trình duyệt web hiểu rõ. Có vẻ như (đáng buồn) văn bản / xml bây giờ là một tiêu chuẩn thực tế.
Samuel EUSTACHI

1
@SamuelEUSTACHI bạn đúng, và câu trả lời được chấp nhận có lẽ không phải là tốt nhất để đảm bảo tính tương thích, theo yêu cầu. Tim Bray trở lại vào năm 2003: "bằng cách này hay cách khác tôi nghĩ có lẽ điều quan trọng là cộng đồng sẽ cùng nhau hành động và quyết định loại phương tiện nào sẽ sử dụng và bắt đầu sử dụng nó". Hôm nay: xem câu trả lời của tôi dưới đây để biết bằng chứng rằng hầu hết các nguồn cấp dữ liệu phổ biến đều sử dụng text/xml.
Kai Carver

35

Các nhà bình luận khác đã chỉ ra rằng loại mime chính xác duy nhất là application/rss+xml,.

Tuy nhiên, nếu bạn đang đặt tiêu đề chấp nhận cho khách hàng thì

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

có thể là một lựa chọn tốt, vì nó tuyên bố rằng nó chấp nhận RSS, Atom và XML (theo thứ tự hoặc ưu tiên giảm dần).


3
Thứ tự tiêu đề chấp nhận cho máy chủ biết nội dung sẽ sử dụng. Máy chủ sẽ xem liệu nó có thể cung cấp cái đầu tiên không, thứ hai, v.v ... Đó là lý do tại sao "application / rss + xml" là lựa chọn đầu tiên tốt nhất và "text / xml" là dự phòng cuối cùng là tốt.
Robert MacLean

4
Trong thực tế, thứ tự của các phần tử trong tiêu đề Chấp nhận là không liên quan. Ưu tiên được biểu thị bằng qtham số , vì vậy, để có hiệu quả mong muốn, tốt hơn là gửi Accept: application/rss+xml, application/rdf+xml, application/atom+xml, application/xml;q=0.9, text/xml;q=0.8, có nghĩa là "Ưu tiên bất kỳ loại MIME chính xác nào cho nguồn cấp dữ liệu. Nếu bạn không thể cung cấp điều đó, hãy ưu tiên application/xml. Nếu bạn không thể cung cấp, thích hơn text/xml. Nếu không, hãy đưa cho tôi những gì bạn đã có "
Magnus Hoff

1
Để biết giá trị của nó, tôi đã thử cả hai dạng Accepttiêu đề được đề xuất với các ví dụ về nguồn cấp dữ liệu phổ biến trong câu trả lời của tôi dưới đây và tất cả chúng đều được trả về text/xml. Tôi đã sử dụng lệnh: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 Tôi đã làm việc với một dự án mới được xây dựng với API Web ASP.NET Core 3.1 + Angular 9. Tôi cần tạo nguồn cấp RSS và khi so sánh đầu ra với các trang web khác, tôi nhận ra Loại Nội dung chính xác để sử dụng là văn bản / xml. Tuy nhiên, nội dung HTML trong các nút mô tả đã được thoát, đặt các giá trị tiêu đề Chấp nhận đã giải quyết vấn đề. Cảm ơn bạn, chúc mừng
Nexus

14

Dưới đây là một câu trả lời thực tế: bất cứ điều gì "đúng" câu trả lời có thể (và rõ ràng có cuộc tranh luận về vấn đề này), text/xmllà loại được sử dụng bởi khá nhiều tất cả các loại thức ăn phổ biến trên mạng trong môi trường hoang dã.

Dưới đây là một số mà tôi đã kiểm tra:

$ 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

Vì vậy, bạn có thể chắc chắn rằng text/xmlsẽ được giải thích chính xác bởi các máy khách RSS thường được sử dụng.


Chưa kiểm tra những người khác, nhưng bbci.co.uk hiện đang gửi ứng dụng / rss + xml
Jules

5

Đúng nhất làapplication/rss+xml

Tương thích nhất làapplication/xml

Theo W3C:

Nguồn cấp RSS phải được phục vụ dưới dạng application / rss + xml (RSS 1.0 là định dạng RDF, vì vậy nó có thể được phục vụ dưới dạng ứng dụng / rdf + xml thay thế). Nguồn cấp dữ liệu nguyên tử nên sử dụng ứng dụng / nguyên tử + xml. Ngoài ra, để tương thích với các trình duyệt web được triển khai rộng rãi, bất kỳ nguồn cấp dữ liệu nào trong số này đều có thể sử dụng một trong các loại XML tổng quát hơn - tốt nhất là ứng dụng / xml.

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



1

Bạn có thể sử dụng text/xml, nhưng loại MIME chính xác sẽ là application/rss+xml.


3
application/xmlđược ưa thích hơn text/xmlvì XML không tuân theo các quy tắc mã hóa nội dung văn bản thông thường. Nó có thể nhúng mã hóa vào dữ liệu của mình, điều này sẽ gây ra vấn đề nếu proxy cố gắng chuyển mã một cách mù quáng văn bản. Nói cách khác, proxy được hướng dẫn để bảo toàn dữ liệu theo từng byte.
Zenexer

-2

văn bản / xml là câu trả lời đúng duy nhất. Các loại Mime là một hệ thống dựa trên đăng ký. Có một danh sách chính thức được quản lý bởi IANA (Cơ quan cấp số được gán Internet) tại http://www.iana.org/assignments/media-types/media-types.xhtml


1
Không phải tất cả các loại MIME trên thế giới đều được đăng ký với IANA. Quan trọng hơn, không có gì trong tài liệu đó đề nghị sử dụng RSS.
Ruben Verborgh

RSS là XML. Nó gợi ý sử dụng cho XML.
Mã khỉ

2
Lập luận đó là không đủ. RSS cũng là RDF. XML cũng là văn bản. Vì vậy, theo lý do này, một loại MIME RDF hoặc văn bản cũng có thể tốt. Tuy nhiên, vấn đề là không phải tất cả các tài liệu XML đều là RSS. Vì vậy, một loại XML chung không đủ cụ thể để xác định rõ ràng RSS.
Ruben Verborgh

@RubenVerborgh "không có gì trong tài liệu đó gợi ý sử dụng cho RSS" Tôi đã sử dụng Ctrl + F và tôi đã nhập vào application / atom và nó tìm thấy application / atom + xml là một trong những loại MIME. Tôi không biết về các không gian tên khác. Tuy nhiên, tôi nghĩ rằng application / rss + xml là tốt nhất cho 2.0, bất kể không gian tên là gì.
MaxxiBoi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.