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.
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à:
Thú vị là Stackoverflow đang sử dụng văn bản / html.
Câu trả lời:
Cũng không. Đó là http://www.rssboard.org/rss-mime-type-application.txtapplication/rss+xml
text/xml
.
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).
q
tham 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ó "
Accept
tiê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
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/xml
là 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/xml
sẽ được giải thích chính xác bởi các máy khách RSS thường được sử dụng.
Đú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
Sử dụng ứng dụng MIME / rss + xml để an toàn nếu bạn muốn đảm bảo nguồn cấp dữ liệu của mình tương thích với trình đọc RSS và các trình dọn dẹp khác. Đó là những gì tôi sử dụng.
Bạn có thể sử dụng text/xml
, nhưng loại MIME chính xác sẽ là application/rss+xml
.
application/xml
được ưa thích hơn text/xml
vì 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.
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