Ajax 是否将URL的锚定部分发送到web服务器?

Ajax 是否将URL的锚定部分发送到web服务器?,ajax,url,browser,Ajax,Url,Browser,比如说,有一个URLhttp://www.example.com/#hello 根据标准,#hello东西是否应该发送到web服务器 现代浏览器是如何工作的 更新:请不要忽略第一个问题。锚定部分(在#之后)不会发送到PHP中的任何$_服务器变量。我不知道是否有办法从URL中检索到这段信息(据我所知,这是不可能的)。浏览器应该只使用它来查找页面中的一个位置,这就是为什么如果您单击这样的锚点,页面不会重新加载:哈希变量根本不会发送到web服务器 例如,来自Firefox的请求发送以下HTTP请求包

比如说,有一个URL
http://www.example.com/#hello

  • 根据标准,
    #hello
    东西是否应该发送到web服务器
  • 现代浏览器是如何工作的

  • 更新:请不要忽略第一个问题。

    锚定部分(在#之后)不会发送到PHP中的任何$_服务器变量。我不知道是否有办法从URL中检索到这段信息(据我所知,这是不可能的)。浏览器应该只使用它来查找页面中的一个位置,这就是为什么如果您单击这样的锚点,页面不会重新加载:

    哈希变量根本不会发送到web服务器

    例如,来自Firefox的请求发送以下HTTP请求包

    GET / HTTP/1.1
    Host: www.whatismyip.org
    User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: en-us,en;q=0.5
    Accept-Encoding: gzip,deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 115
    Connection: keep-alive
    Cache-Control: max-age=0
    
    你会注意到#到处都找不到。 您看到的使用#作为导航形式的页面是通过javascript实现的。
    此参数可通过
    窗口.location.hash
    变量访问

    此问题的答案与/questions/774136的答案类似。 基本上,根据标准@faqs.org/rfcs/rfc1808.html(参见第2.4.1节),它说:“请注意,片段标识符不被视为URL的一部分。”
    正如“Steffu”所指出的,“任何浏览器都不会将锚定标记作为HTTP请求的一部分发送,它只在浏览器内部进行本地解释。”

    我所知的任何浏览器都不会将URL的
    #散列
    部分传输到服务器。