• #(URL-)锚点-(html-)锚点-(URL-)hash-fragment-(URL-)井号
  • DOM

梗概:

在URL的最后面,可以使用井号,后面紧跟hash值,用来表示页面的视图内容

  1. 与服务器资源无关
    1. 打开带hash值的URL,向服务器发送http请求的时候,会自动去掉hash值
    2. 浏览网页的时候,hash更改,是不会向服务器发送请求的
  2. 是用于浏览器,客户端使用的
    1. 客户端根据hash值,自动滚动视图到有着对应锚点名称的html标签
  3. hash每次改变,都会在浏览器的访问历史中增加一个记录
    1. 使用”后退”按钮,就可以回到上一个位置。

注意:

在第一个#后面出现的任何字符,都会被浏览器解读为位置标识符。这意味着,这些字符都不会被发送到服务器端。 比如,下面URL的原意是指定一个颜色值:

http://www.example.com/?color=#fff

但是,浏览器实际发出的请求是:

GET /?color= HTTP/1.1 Host: www.example.com

可以看到,“#fff”被省略了。只有将#转码为%23,浏览器才会将其作为实义字符处理。也就是说,上面的网址应该被写成:

http://example.com/?color=%23fff

相关的DOM API

child::URL相关的API