URL 哈希片段:服务器端不可用
附加到 URL 的哈希片段 (#) 指示页面内的特定位置。但是,此信息通常在服务器上不可用。
考虑 URL:“http://www.foo.com/page.php?parameter=kickme#MOREURL”。服务器只会处理“http://www.foo.com/page.php?parameter=kickme”,哈希部分“#MOREURL”在服务器端将不可用。
服务器无法访问的原因
哈希片段专门设计为仅由浏览器处理。它用于客户端导航,允许用户跳转到页面内的特定部分。当浏览器请求 URL 时,它仅将非哈希部分发送到服务器,哈希片段在客户端专门处理。
解释和含义
根据 HTML 标准,哈希片段不会传递到服务器。这适用于所有浏览器,包括 Internet Explorer 和其他现代浏览器。因此,像 PHP 这样的服务器端技术无法访问哈希片段。
Wikipedia 提供了明确的定义:“片段标识符的功能与 URI 的其余部分不同:即,它的处理完全是在客户端进行的,没有来自服务器的参与。”浏览器通过将页面向下滚动到适当的锚元素或执行其他基于客户端的操作来处理哈希片段。
注意:
认识到这一点很重要散列片段对于许多依赖客户端功能进行导航和页面交互的 Web 应用程序至关重要。如果没有哈希片段的专有客户端处理,这些应用程序将无法按预期运行。
以上是为什么无法访问服务器上的 URL 哈希片段?的详细内容。更多信息请关注PHP中文网其他相关文章!