directory search
Guides Access control CORS Authentication Browser detection using the user agent Caching Caching FAQ Compression Conditional requests Connection management in HTTP 1.x Content negotiation Content negotiation: List of default Accept values Cookies CSP Messages Overview Protocol upgrade mechanism Proxy servers and tunneling Proxy servers and tunneling: Proxy Auto-Configuration (PAC) file Public Key Pinning Range requests Redirections Resources and specifications Resources and URIs Response codes Server-Side Access Control Session Guides: Basics Basics of HTTP Choosing between www and non-www URLs Data URIs Evolution of HTTP Identifying resources on the Web MIME Types MIME types: Complete list of MIME types CSP Content-Security-Policy Content-Security-Policy-Report-Only CSP: base-uri CSP: block-all-mixed-content CSP: child-src CSP: connect-src CSP: default-src CSP: font-src CSP: form-action CSP: frame-ancestors CSP: frame-src CSP: img-src CSP: manifest-src CSP: media-src CSP: object-src CSP: plugin-types CSP: referrer CSP: report-uri CSP: require-sri-for CSP: sandbox CSP: script-src CSP: style-src CSP: upgrade-insecure-requests CSP: worker-src Headers Accept Accept-Charset Accept-Encoding Accept-Language Accept-Ranges Access-Control-Allow-Credentials Access-Control-Allow-Headers Access-Control-Allow-Methods Access-Control-Allow-Origin Access-Control-Expose-Headers Access-Control-Max-Age Access-Control-Request-Headers Access-Control-Request-Method Age Allow Authorization Cache-Control Connection Content-Disposition Content-Encoding Content-Language Content-Length Content-Location Content-Range Content-Type Cookie Cookie2 Date DNT ETag Expect Expires Forwarded From Headers Host If-Match If-Modified-Since If-None-Match If-Range If-Unmodified-Since Keep-Alive Large-Allocation Last-Modified Location Origin Pragma Proxy-Authenticate Proxy-Authorization Public-Key-Pins Public-Key-Pins-Report-Only Range Referer Referrer-Policy Retry-After Server Set-Cookie Set-Cookie2 SourceMap Strict-Transport-Security TE Tk Trailer Transfer-Encoding Upgrade-Insecure-Requests User-Agent User-Agent: Firefox Vary Via Warning WWW-Authenticate X-Content-Type-Options X-DNS-Prefetch-Control X-Forwarded-For X-Forwarded-Host X-Forwarded-Proto X-Frame-Options X-XSS-Protection Methods CONNECT DELETE GET HEAD Methods OPTIONS PATCH POST PUT Status 100 Continue 101 Switching Protocols 200 OK 201 Created 202 Accepted 203 Non-Authoritative Information 204 No Content 205 Reset Content 206 Partial Content 300 Multiple Choices 301 Moved Permanently 302 Found 303 See Other 304 Not Modified 307 Temporary Redirect 308 Permanent Redirect 400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found 405 Method Not Allowed 406 Not Acceptable 407 Proxy Authentication Required 408 Request Timeout 409 Conflict 410 Gone 411 Length Required 412 Precondition Failed 413 Payload Too Large 414 URI Too Long 415 Unsupported Media Type 416 Range Not Satisfiable 417 Expectation Failed 426 Upgrade Required 428 Precondition Required 429 Too Many Requests 431 Request Header Fields Too Large 451 Unavailable For Legal Reasons 500 Internal Server Error 501 Not Implemented 502 Bad Gateway 503 Service Unavailable 504 Gateway Timeout 505 HTTP Version Not Supported 511 Network Authentication Required Status
characters

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)

Previous article: Next article: