©
This document usesPHP Chinese website manualRelease
Content-Location报头指示为返回的数据的备用位置。主要用途是指示作为内容协商结果传输的资源的 URL 。
Location和Content-Location是不同的。
Location指示重定向的 URL ,同时Content-Location指示用于访问资源的直接 URL ,而未来未进一步内容协商。
Location是与响应关联的头部,Content-Location与返回的数据相关联。没有示例,这种区分看起来很抽象。
|
Header type |
Entity header |
|---|---|
|
Forbidden header name |
no |
Content-Location:
假设一个网站的 API 可以以 JSON ,XML 或 CSV 格式返回数据。如果特定文档的 URL 位于https://example.com/documents/foo,网站可能会返回不同的 URL 以Content-Location取决于请求的Accept标题:
|
Request header |
Response header |
|---|---|
|
Accept: application/json, text/json |
Content-Location: /documents/foo.json |
|
Accept: application/xml, text/xml |
Content-Location: /documents/foo.xml |
|
Accept: text/plain, text/* |
Content-Location: /documents/foo.txt |
这些 URL 是示例 - 该网站可以使用它希望的任何 URL 模式来提供不同的文件类型,例如查询字符串参数:/documents/foo?format=json,/documents/foo?format=xml等等。
然后,客户端可以记住 JSON 版本在该特定的 URL 上可用,在下次请求文档时跳过内容协商。
服务器也可以考虑其他内容协商头,例如Accept-Language。
假设您正在通过网站的 API 创建新博客帖子:
PUT /new/post Host: example.com Content-Type: text/markdown # My first blog post!I made this through `example.com`'s API. I hope it worked.
该网站返回确认帖子已发布的通用成功消息。服务器指定其中的新职位是Content-Location:
HTTP/1.1 201 Created Content-Type: text/plain; charset=utf-8Content-Location: /my-first-blog-post ✅ Success!
假设您有一笔钱用于网站的其他用户。
表单提交后,网站会为交易生成收据。服务器可以用Content-Location来指示收据的 URL 以供将来访问。
HTTP/1.1 200 OK Content-Type: text/html; charset=utf-8Content-Location: /my-receipts/38(Lots of HTML…)You sent $38.00 to ExampleUser.
(Lots more HTML…)
|
Specification |
Title |
|---|---|
|
RFC 7231, section 3.1.4.2: Content-Location |
Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content |
|
Feature |
Chrome |
Edge |
Firefox |
Internet Explorer |
Opera |
Safari |
|---|---|---|---|---|---|---|
|
Basic Support |
(Yes) |
(Yes) |
(Yes) |
(Yes) |
(Yes) |
(Yes) |
|
Feature |
Android |
Chrome for Android |
Edge mobile |
Firefox for Android |
IE mobile |
Opera Android |
iOS Safari |
|---|---|---|---|---|---|---|---|
|
Basic Support |
(Yes) |
(Yes) |
(Yes) |
(Yes) |
(Yes) |
(Yes) |
(Yes) |