【发布时间】:2008-11-19 16:52:22
【问题描述】:
我想根据用户是浏览器还是 RSS 阅读器从单个 URL 提供不同的内容(因此避免使用 example.com/feed URL)。因此 www.example.com/posts 将向浏览器返回一个 (X)HTML 页面,向提要阅读器返回一个 RSS 提要。
在架构上最合适的方法是什么?
PS 垒球问题怎么样... :)
【问题讨论】:
标签: rss web-applications feed user-agent
我想根据用户是浏览器还是 RSS 阅读器从单个 URL 提供不同的内容(因此避免使用 example.com/feed URL)。因此 www.example.com/posts 将向浏览器返回一个 (X)HTML 页面,向提要阅读器返回一个 RSS 提要。
在架构上最合适的方法是什么?
PS 垒球问题怎么样... :)
【问题讨论】:
标签: rss web-applications feed user-agent
我不确定这是否适用于所有情况。考虑一个使用 Safari 的 RSS 阅读器的用户,假设它在下载 RSS 提要时使用相同的浏览器标识符字符串,你会如何区分这两种模式?
我真的会重新考虑这种方法,单独的提要 URL 没有任何问题。
【讨论】:
让我向您介绍用户代理HTTP header。它将包含一个用于访问您页面的客户端的标识字符串。它可以被伪造,但您不能 100% 确定它是 RSS 阅读器还是浏览器。
此外,RSS 阅读器可能会发送 RSS 内容类型的 Accept 标头,您可以使用它来实现 content negotiation(在 Apache 中为 MultiViews)。
但由于没有万无一失的方法,您最好在提供 HTML 方面比 RSS 更频繁地失败,或者更好的是,像其他人一样为 RSS 提供不同的提要。
【讨论】: