Content-Location
用法
Content-Location 头提供一个 URL,用于标识响应体中所交付资源的具体表示。与将客户端重定向到另一资源的 Location 头不同,Content-Location 指向服务器在内容协商后所选择的确切表示。
当服务器支持同一资源的多种表示(不同语言、格式或编码)时,Content-Location 头告诉客户端具体选中了哪个变体。这一区别对于缓存以及为协商结果添加书签都很重要。
其值可以是绝对 URL,也可以是相对于请求 URL 解析的相对引用。实际中相对引用更为常见。
Content-Location 也会出现在对 PUT 和 POST 请求的响应中。当一次成功的 POST 创建了新资源,且响应体直接表示所创建的资源时,服务器会将 Content-Location 设置为新创建条目的 URL。
示例
客户端请求位于 /report 的文档,服务器通过内容协商选择了英文 PDF 变体。Content-Location 头标识出所选表示的具体 URL。
GET /report HTTP/1.1
Host: example.re
Accept: application/pdf
Accept-Language: en
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Language: en
Content-Location: /report/en.pdf
在 POST 请求创建新资源后,服务器在响应体中返回所创建的条目。Content-Location 头指向新资源的规范 URL。
HTTP/1.1 201 Created
Content-Type: application/json
Content-Location: /orders/12345
注意
Location 头将客户端重定向到另一资源,改变请求目标。Content-Location 标识的是已在响应体中交付的表示的具体 URL。Location 触发一个新请求,Content-Location 描述已返回的内容。