Content-Location

优质
小牛编辑
128浏览
2023-12-01

Content-Location报头指示为返回的数据的备用位置。主要用途是指示作为内容协商结果传输的资源的 URL 。

LocationContent-Location是不同的。

Location指示重定向的 URL ,同时Content-Location指示用于访问资源的直接 URL ,而未来未进一步内容协商。

Location是与响应关联的头部,Content-Location与返回的数据相关联。没有示例,这种区分看起来很抽象。

Header type

Entity header

Forbidden header name

no

语法

Content-Location: <url>

指令

<url> 相对于(请求 URL )或绝对 URL 。

例子

以不同格式从服务器请求数据

假设一个网站的 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

指向一个新文档( HTTP 201创建)

假设您正在通过网站的 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!

指示交易结果的网址

假设您有一笔<form>钱用于网站的其他用户。

<form action="/send-payment" method="post">  
    <p>    
        <label>Who do you want to send the money to?      <input type="text" name="recipient">    </label>  
    </p>  
    <p>    
        <label>How much?      <input type="number" name="amount">    </label>  
    </p>  
    <button type="submit">Send Money</button>
</form>

表单提交后,网站会为交易生成收据。服务器可以用Content-Location来指示收据的 URL 以供将来访问。

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8Content-Location: /my-receipts/38<!doctype html>(Lots of HTML…)
<p>You sent $38.00 to ExampleUser.</p>
(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)