【发布时间】:2012-01-18 05:18:11
【问题描述】:
当用户在我的网站http://mysite.com/some-drawing 上单击指向绘图的链接时,
我希望我的服务器响应状态码 300 和两个资源位置:http://mysite.com/some-drawing.png 和 http://mysite.com/some-drawing.myapp,并让客户端浏览器根据其功能自动决定使用哪一个:
如果用户的机器上安装了MyApp,那么浏览器应该下载
*.myapp版本并使用MyApp来显示。但是,如果没有安装MyApp,并且浏览器无法显示这个版本,那么我希望它选择
*.png版本。
但是,我很难弄清楚状态码为 300 的 HTTP 响应的结构。
rfc2616 说:
请求的资源对应于一组中的任何一个 表示,每个都有自己的特定位置,并且代理- 提供驱动谈判信息(第 12 节),以便 用户(或用户代理)可以选择一个首选的表示和 将其请求重定向到该位置。
除非它是一个 HEAD 请求,否则响应应该包含一个实体 包含资源特征和位置列表 用户或用户代理可以选择最合适的一个。这 实体格式由 Content- 中给出的媒体类型指定 类型标题字段。取决于格式和能力 用户代理,选择最合适的选择可能是 自动执行。但是,本规范没有定义 这种自动选择的任何标准。
如果服务器有首选的表示方式,它应该 在 Location 中包含该表示的特定 URI 场地;用户代理可以使用位置字段值进行自动 重定向。除非另有说明,否则此响应是可缓存的。
“包含资源特征和位置列表的实体”措辞似乎含糊不清。这是什么意思?有人知道这是怎么做到的吗?
【问题讨论】:
标签: http http-headers http-status-codes