【问题标题】:What is the purpose of the HTTP header field “Content-Location”?HTTP 标头字段“Content-Location”的用途是什么?
【发布时间】:2010-10-01 15:39:31
【问题描述】:

对我的问题Do search engines respect the HTTP header field “Content-Location”? 的评论感到困惑/启发,我想知道Content-Location header field in HTTP 的确切用途是什么以及如何使用它。

【问题讨论】:

    标签: http http-headers


    【解决方案1】:

    为了响应 GET 请求,当请求的资源具有多种可用表示时,可以使用 HTTP 中的 Content-Location,例如多种语言。返回的资源的选择将取决于原始 GET 请求中的 Accept 标头。

    通常,Content-Location 标头中指定的位置与原始请求的 URI 中指定的位置不同。

    响应 PUT 或 POST 请求,

    【讨论】:

    【解决方案2】:

    Content-Location HTTP 标头应该声明用于响应 HTTP GET 的资源的唯一位置(例如请求是 GET /frontpage HTTP/1.1,服务器可以添加 HTTP 标头 Content-Location: @987654321@ 通知用户代理,如果这稍后需要具体响应,应使用提供的位置,因为原始位置可能取决于各种事物,然后应通过“Vary”标题进行解释)。

    但是,请注意 HTTP Content-Location 标头在实际使用中存在问题,因为不同的浏览器(用户代理)处理它的方式不同: http://mail.python.org/pipermail/web-sig/2004-October/000985.html

    这是因为 RFC 2616 第 14.14 节说“Content-Location 的值还定义了实体的基本 URI”。简而言之,一个兼容的用户代理将使用 Content-Location 标头计算获取的文档的 BASE URL,如果获取的文档没有定义 BASE url 并且实际获取的 URL 和 Content-Location 差异足够大,这可能会导致使用不同的相对 URL (URL 的“目录”/“路径”部分不同)。

    此外,我还没有看到使用 HTTP Content-Location 的任何优势(我曾经希望这可以用于提示永久书签位置,以防当前查看的 URL 不稳定,例如 domain.com/news /latest 但似乎并非如此)。

    我目前的建议是忘记 HTTP 的 Content-Location,但您可以将它用于 MIME 电子邮件。

    【讨论】:

    【解决方案3】:

    Section 14.14 of RFC 2616 状态:

    Content-Location 实体头字段可用于提供 消息中包含的实体的资源位置 实体可以从与请求不同的位置访问 资源的 URI...

    这用于AtomPub (RFC 5023, Section 9.2):

    如果创建请求包含 Atom 条目文档,并且 来自服务器的后续响应包含一个 Content-Location 标头 与 Location 标头逐个字符匹配,然后 客户端被授权将响应实体解释为 新创建的条目的完整表示。没有匹配 Content-Location 标头,客户端不得假定返回的 entity 是已创建资源的完整表示。

    【讨论】:

    • 请注意,AtomPub 中描述的关于表示完整性的行为不受 HTTP 规范的支持。
    • 它将在 httpbis:第 2 部分,第 6.1 节:greenbytes.de/tech/webdav/…
    • 请注意,RFC2616 已被 RFC7231 淘汰,您引用的文本不再在 RFC7231 中!见Section 3.1.4.2
    【解决方案4】:

    如果您有兴趣,请查看 RFC2557:http://www.faqs.org/rfcs/rfc2557.html 以获得更深入的解释。我目前正在为一堂课写这篇文章。它有点旧,但仍然很重要。

    【讨论】:

    • 据我所知,RFC 2557 与 HTTP Content-Location 无关。
    • 我不确定我们是否在谈论同一件事,但 RFC 声明:本文档... b) 指定一个 MIME 内容标头 (Content-Location),允许在multipart/related text/html 根正文部分,用于引用同一 multipart/related 结构的其他正文部分中的附属资源。
    • 据我所知,RFC 2557 是关于包含多个资源作为单个文件的聚合文档,并且此类集合内资源的“Content-Location”标头用于定义哪个 URI 可以用于引用该特定资源。由 RFC 2557 定义的聚合文档类型通常不受称为 www 浏览器的软件的支持。最接近的匹配是 Microsoft Internet Explorer 的“另存为 HTML 存档”功能。
    猜你喜欢
    • 2011-02-15
    • 2010-10-01
    • 2013-03-12
    • 2019-12-17
    • 1970-01-01
    • 2014-07-06
    • 2012-05-16
    • 2012-06-03
    • 1970-01-01
    相关资源
    最近更新 更多