Content-Location
的确切目的是什么,以及它如何使用,但要确保不改变原来的意思。Content-Location
的确切目的是什么,以及它如何使用,但要确保不改变原来的意思。在HTTP协议中,当请求的资源有多种表示方式(例如多种语言)时,可以使用Content-Location来响应GET请求。返回的资源选取依赖于原始GET请求中的Accept标头。
通常情况下,Content-Location标头中指定的位置与原始请求URI中指定的位置不同。
在响应PUT或POST请求时:
Content-Location HTTP头部应该声明用于HTTP GET响应的资源的唯一位置(例如,请求为GET /frontpage HTTP/1.1
,服务器可以添加HTTP头部Content-Location:http://domain.com/frontpage.english.msie-optimized
来告知用户代理如果以后需要此特定响应,则应使用提供的位置,因为原始位置可能取决于各种事情,这应通过“ Vary
”头部进行解释)。
然而,请注意,在实际世界中,HTTP Content-Location头很难使用,因为不同的浏览器(用户代理)处理方式不同: http://mail.python.org/pipermail/web-sig/2004-October/000985.html
这是由于RFC 2616第14.14节中指出,“Content-Location的值还定义了实体的基本URI”。简而言之,符合标准的用户代理将使用Content-Location头计算获取文档的BASE URL,如果获取的文档未定义BASE url并且真实获取的URL和Content-Location有足够的差异(URL的“目录”/“路径”部分不同),则可能会使用不同的相对URL。
此外,我还没有看到使用HTTP Content-Location的任何优势(我曾经希望这可用于提示关于永久书签位置的信息,以防当前查看的URL是易变的,例如domain.com/news/latest,但似乎这不是情况)。
我的建议是忘记在HTTP中使用Content-Location,但您可以在MIME电子邮件中使用它。
如果您感兴趣,可以查看RFC2557:http://www.faqs.org/rfcs/rfc2557.html以获取更深入的解释。我目前正在为一门课程撰写相关内容。虽然它有点老,但仍然具有相关性。