搜索引擎是否尊重HTTP头字段“Content-Location”?

13
我在想搜索引擎是否会尊重HTTP头字段Content-Location。这可能很有用,例如当您想从URL中删除会话ID参数时:
GET /foo/bar?sid=0123456789 HTTP/1.1
Host: example.com
…

HTTP/1.1 200 OK
Content-Location: http://example.com/foo/bar
…

澄清:
我不想重定向请求,因为删除会话ID将导致完全不同的请求,从而可能产生不同的响应。我只是想说明,封闭的响应也可以在其“主URL”下获得。
也许我的示例不是我问题意图的好代表。请看看HTTP标头字段“Content-Location”的目的是什么?

这不是有点扩大Content-Location的用途吗?规范似乎表明应该有比仅查询字符串更大的差异。 - Hank Gay
移除查询只是一个例子。但是我可能误解了Content-Location的目的,它并不是为了提供所请求资源的真实位置。 - Gumbo
我认为这是确切的目的,但我认为想法更像是 URI:http://foo.com/listOfStuff/indexOfResult(基本上是识别集合中的特定成员) Content-Location:http://foo.com/path/to/individualItem(基本上是资源的直接URI)不过,我认为你的想法也不错。 - Hank Gay
5个回答

7

我认为谷歌刚刚宣布了回答我的问题的答案:canonical链接关系用于声明规范URL

来自Google的Maile Ohye写道:

按照以下链接,您应该使用Content-Location头:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
"14.14 Content-Location"

@MikeyC: 从理论上讲,这是有道理的,我们当然考虑过这个问题。但是,有几点原因使我们选择:

  1. 我们的数据显示,“Content-Location”标头在许多网站上配置不正确。有时,站长会提供冗长、丑陋的URL,甚至不是重复的——这可能是无意的。他们可能没有意识到他们的Web服务器甚至正在发送Content-Location头。

    联系站长清理整个Web中的Content-Location问题将非常耗时。我们意识到,如果我们从一个干净的状态开始,我们可以更快地提供功能。随着Microsoft和Yahoo!支持此格式,站长只需要学习一种语法。

  2. 通常,站长很难配置其Web服务器标头,但可以更轻松地更改其HTML。rel="canonical"似乎是一个友好的属性。

http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html?showComment=1234714860000#c8376597054104610625


1

大多数良好的网络爬虫确实会遵循Content-Location。因此,搜索引擎确实尊重Content-Location头部,但这并不能保证具有sid参数的URL不会出现在结果页面上。


0

在2009年,谷歌开始查看响应主体中标记为rel=canonical的URI。

似乎自2011年起,符合RFC5988格式的链接也被从头部字段Link:解析。这也在网站管理员工具FAQ中明确提到作为有效选项。

猜测这是提供搜索引擎一些额外超媒体面包屑的最新方法 - 因此允许在您不需要将其作为内容提供时将其保留在响应主体之外。


-2
除了使用“Content-Location”而不是“Location”,还应根据重定向的原因在响应中使用适当的HTTP状态代码。搜索引擎倾向于永久重定向(301)状态而不是临时(302)状态。

1
Location: 重定向。Content-Location: 不重定向,指定规范地址。 - Piskvor left the building

-4
尝试使用“Location:”头部替代。

那是重定向,提问者不希望发生的。 - ceejayoz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接