Google使用#而不是搜索?在URL中。为什么?

时间:2009-07-13 22:50:45

标签: ajax url hash

我不确定他们做了多长时间,但我只是注意到谷歌在搜索网址中使用而不是搜索?

新方式
http://www.google.com/#q=stackoverflow
旧方式
http://www.google.com/search?q=stackoverflow

磅/井号通常用作页面部分的锚点 除了更短的网址,谷歌的好处是什么?它似乎违反了搜索引擎惯例,但谷歌再次设定了惯例。你能看到这种方法有什么问题吗?

更新
要自己测试,请使用www.google.com上的常规搜索框。你会在网址中得到一些其他的垃圾,但q =之前的部分是我引用这个问题的。

更新2
看起来这可能是他们正在测试随机用户的实验性功能,因为有些人在尝试转到结果时会被重新路由到搜索?结果。< / p>

更新3
在对话here中,可以看到已经使用google.com主网站向所有firefox用户进行了搜索。

摘录

  

09年4月27日   查询参数中的#是a   单独的实验,搜索   团队正在做(基于AJAX的搜索   结果页面)开始了一段时间   背部。对此进行了热烈的讨论   在Yahoo Web Analytics讨论中   几个月前组。随机组   人被分配为一个人   实验的一部分,那   导致了所有关键字数据   用户从每个Analytics中消失   工具。看起来像是实验   还在继续。

     

4/28/09查询参数中的#   似乎已经推广到所有人   www.google.com上的Firefox用户   SERP,所以这必须通过   测试阶段。我在猜测   FireFox能够更好地处理AJAX   IE,因此它还没有被推出   退出IE用户。

     

5/1/09当我挖到SERP的时候   最初看起来像谷歌的网页   将网站“真实”的URL放入   链接,但一旦点击链接   网址已替换为Google重定向   表格的网址   www.google.com/url?q=flowers&blahblahblah。   该重定向网址显示在其中   HTTP referrer字段和得到的内容   由网络浏览器报告(和   因此,分析工具)。

6 个答案:

答案 0 :(得分:17)

我的谷歌仍然使用search?前缀,但使用哈希(#)的好处是它不需要重新加载页面。添加查询字符串(?)会强制页面在所有浏览器中重新加载。

通过使用哈希,他们可以通过允许项目在浏览器元素中保留来将项目保留在“内存”中。添加哈希还会为页面创建历史记录对象。这保持了前进和后退功能,同时允许他们使用AJAX处理您的搜索。基本上这意味着他们可以更快地处理您的搜索,只需要获取加载整个页面所需的HTTP头的子集,而不会失去满载的功能。

答案 1 :(得分:7)

快速Google搜索(使用好的'?q=方法...)会出现这个问题:

Has Google.com changed to google.com/#q=flowers for FireFox users? (I was expecting google.com/url?q=flowers)

  

几个月前,Google测试了一些在网址中添加了#的搜索结果。对于有兴趣了解哪些关键字为他们的网站带来流量的人来说,这是一个很大的问题(在#引用者没有通过#之后,网址中的任何内容......这对于网络分析产品尤其如此),所以我们与...合作   搜索团队停止测试,直到找到更好的解决方案。

因此,这种URL格式曾经用于用户的某些子集,这是Google在其用户毫无疑问的子集上运行的众多测试之一的一部分。它为分析软件带来了问题,因此他们为将来的测试切换到不同的格式,但仍然支持旧的哈希查询URL(通过静默地将它们重定向到正常的?查询URL)。

答案 2 :(得分:4)

好吧,Facebook使用这种技术加载图像而不卸载页面,但仍然让这个人处于不同的URL。

如果您更改了搜索查询,则可以在不重新加载页面的情况下更新地址栏中的URL(在#之后修改内容时,浏览器不会触发新的GET请求)

答案 3 :(得分:1)

似乎#q=stackoverflow重定向到search?q=stackoverflow&cad=h

我不知道你是怎么得到的 - 我得到了通常的那个。

答案 4 :(得分:1)

实际上首先重定向到第二个。

答案 5 :(得分:1)

谷歌的这一举动似乎产生了不必要的结果。 Google现在会显示每个搜索的重定向页面,其中包含一个#字符。 试试吧 - 这太烦人了。 作为开发人员,我经常搜索C# - 这个问题让我认为Bing是一种更好的体验。