网址遵循以下方案
scheme://domain:port/path?query_string#fragment_id
但搜索字符串
更好的航班搜索
产生以下网址
https://www.google.co.in/#q=better+flight+search
根据url方案#
后跟片段。如果我错了,请纠正我,但片段不会发送到服务器,那么google如何显示搜索结果。
答案 0 :(得分:3)
如您所知,URL的片段部分不会在HTTP请求中发送到服务器。相反,浏览器在本地使用它来标记文档中的位置。一些客户端框架利用了这一事实,并将片段用作辅助查询字符串。
因此,举例来说,在Google的示例中,在Google页面上进行搜索会导致页面导航到#q=better+flight+search
这样的片段。浏览器会看到更改并通知页面的javascript URL已更改。由于URL减去片段是相同的,因此浏览器不会向服务器执行请求。在这种情况下,页面的javascript会看到片段更改并使用它来执行Ajax查询以获取搜索结果。这样做可以让Google在不加载页面的情况下为您提供搜索结果,这对服务器和客户端来说都是一个巨大的胜利(服务器,因为它不必处理服务另一个页面的开销;客户端因为加载时间大大减少)。
对于相关的#!
看到this question。