决定XML或HTML响应的最佳方法是什么?

Joh*_*ely 0 api rest web-services

我有一个人和机器应该能够读取的URL资源:

http://example.com/foo-collection/foo001

区分人类浏览器和计算机,返回HTML或特定于域的XML响应的最佳方法是什么?

(1)请求中的Accept类型字段?

(2)额外的URL?例如:

http://example.com/foo-collection/foo001 - >返回HTML
http://example.com/foo-collection/foo001?xml - >返回,呃,XML

我不希望让读取资源的机器解析HTML(或XHTML).像googlebot这样的机器应该会收到HTML回复.

假设我控制机器读取器是合理的.

Jon*_*eet 7

如果这是您的控制,而不是添加查询参数,为什么不添加文件扩展名:

http://example.com/foo-collection/foo001.html - return HTML
http://example.com/foo-collection/foo001.xml - return XML
Run Code Online (Sandbox Code Playgroud)

除了其他任何东西,这意味着如果有人用wget取出它或从浏览器中保存它,它将有一个合适的文件名,没有任何大惊小怪.