Is the anchor part of a URL being sent to a web server?

后端 未结 3 1235
佛祖请我去吃肉
佛祖请我去吃肉 2020-12-02 02:02

Say, there\'s a URL http://www.example.com/#hello

  1. Should #hello thing be sent to the web server or not, according to standards?
相关标签:
3条回答
  • 2020-12-02 02:18

    The anchor part (after the #) is not sent to any $_SERVER variables in PHP. I don't know if there is a way of retrieving that piece of info from the URL or not (as far as I know, it's not possible). It's supposed to be used by the browser only to find a location in the page, which is why the page does not reload if you click on an anchor like so: <a href="#hello">hello</a>

    0 讨论(0)
  • 2020-12-02 02:19

    The answer to this question is similar to the answers for /questions/774136. Basically, according to the standard @ faqs.org/rfcs/rfc1808.html (see Section 2.4.1) it says: ""Note that the fragment identifier is not considered part of the URL." As "stephbu" pointed out, "the anchor tag is never sent as part of the HTTP request by any browser, it is only interpreted locally within the browser".

    0 讨论(0)
  • 2020-12-02 02:26

    The hash variables aren't sent to the web server at all.

    For instance, a request to http://www.whatismyip.org/#test from Firefox sends the follow HTTP request packet

    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
    

    You'll notice the # is nowhere to be found. Pages you see using # as a form of navigation are doing so through javascript. This parameter is accessible though the window.location.hash variable

    0 讨论(0)
提交回复
热议问题