目录搜索
GuidesAccess control CORSAuthenticationBrowser detection using the user agentCachingCaching FAQCompressionConditional requestsConnection management in HTTP 1.xContent negotiationContent negotiation: List of default Accept valuesCookiesCSPMessagesOverviewProtocol upgrade mechanismProxy servers and tunnelingProxy servers and tunneling: Proxy Auto-Configuration (PAC) filePublic Key PinningRange requestsRedirectionsResources and specificationsResources and URIsResponse codesServer-Side Access ControlSessionGuides: BasicsBasics of HTTPChoosing between www and non-www URLsData URIsEvolution of HTTPIdentifying resources on the WebMIME TypesMIME types: Complete list of MIME typesCSPContent-Security-PolicyContent-Security-Policy-Report-OnlyCSP: base-uriCSP: block-all-mixed-contentCSP: child-srcCSP: connect-srcCSP: default-srcCSP: font-srcCSP: form-actionCSP: frame-ancestorsCSP: frame-srcCSP: img-srcCSP: manifest-srcCSP: media-srcCSP: object-srcCSP: plugin-typesCSP: referrerCSP: report-uriCSP: require-sri-forCSP: sandboxCSP: script-srcCSP: style-srcCSP: upgrade-insecure-requestsCSP: worker-srcHeadersAcceptAccept-CharsetAccept-EncodingAccept-LanguageAccept-RangesAccess-Control-Allow-CredentialsAccess-Control-Allow-HeadersAccess-Control-Allow-MethodsAccess-Control-Allow-OriginAccess-Control-Expose-HeadersAccess-Control-Max-AgeAccess-Control-Request-HeadersAccess-Control-Request-MethodAgeAllowAuthorizationCache-ControlConnectionContent-DispositionContent-EncodingContent-LanguageContent-LengthContent-LocationContent-RangeContent-TypeCookieCookie2DateDNTETagExpectExpiresForwardedFromHeadersHostIf-MatchIf-Modified-SinceIf-None-MatchIf-RangeIf-Unmodified-SinceKeep-AliveLarge-AllocationLast-ModifiedLocationOriginPragmaProxy-AuthenticateProxy-AuthorizationPublic-Key-PinsPublic-Key-Pins-Report-OnlyRangeRefererReferrer-PolicyRetry-AfterServerSet-CookieSet-Cookie2SourceMapStrict-Transport-SecurityTETkTrailerTransfer-EncodingUpgrade-Insecure-RequestsUser-AgentUser-Agent: FirefoxVaryViaWarningWWW-AuthenticateX-Content-Type-OptionsX-DNS-Prefetch-ControlX-Forwarded-ForX-Forwarded-HostX-Forwarded-ProtoX-Frame-OptionsX-XSS-ProtectionMethodsCONNECTDELETEGETHEADMethodsOPTIONSPATCHPOSTPUTStatus100 Continue101 Switching Protocols200 OK201 Created202 Accepted203 Non-Authoritative Information204 No Content205 Reset Content206 Partial Content300 Multiple Choices301 Moved Permanently302 Found303 See Other304 Not Modified307 Temporary Redirect308 Permanent Redirect400 Bad Request401 Unauthorized403 Forbidden404 Not Found405 Method Not Allowed406 Not Acceptable407 Proxy Authentication Required408 Request Timeout409 Conflict410 Gone411 Length Required412 Precondition Failed413 Payload Too Large414 URI Too Long415 Unsupported Media Type416 Range Not Satisfiable417 Expectation Failed426 Upgrade Required428 Precondition Required429 Too Many Requests431 Request Header Fields Too Large451 Unavailable For Legal Reasons500 Internal Server Error501 Not Implemented502 Bad Gateway503 Service Unavailable504 Gateway Timeout505 HTTP Version Not Supported511 Network Authentication RequiredStatus
文字

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)

上一篇:下一篇: