URL中#号(井号)的作用

摘要:
1.URL中的磅符号指定页面中的位置。磅符号作为页面定位器出现在URL中。此URL表示页面features.htm2中打印的位置。当使用类似于HttpWatch的工具时,磅号之后的数据不会发送到HTTP请求。在Http请求中找不到哈希后面的参数,因为哈希后面的是浏览器的参数,而不是服务器的参数。

今天又看到了一篇非常好的来自HTTPWatch的文章,不得不推荐给大家。

1. 井号在URL中指定的是页面中的一个位置

井号作为页面定位符出现在URL中,比如:http://www.httpwatch.com/features.htm#print ,此URL表示在页面features.htm中print的位置。浏览器读取这个URL后,会自动将print位置滚动至可视区域。

URL中#号(井号)的作用第1张

在页面上添加锚点的方法为:<a name=”print”></a>或使用<div id=”print” >。

2.井号后面的数据不会发送到HTTP请求中

当时使用类似HttpWatch工具时,你是无法在Http请求中找到井号后面的参数的,原因是井号后面的参数是针对浏览器起作用的而不是服务器端。

URL中#号(井号)的作用第2张

3. 任务位于井号后面的字符都是位置标识符

不管第一个井号后面跟的是什么参数,只要是在井号后面的参数一律看成是位置标识符。

比如这样一个链接(http://example.com/?color=#ffff&amp;shape=circle),后面跟的参数是颜色和形状,但是服务器却并不能理解URL中的含义。服务器接收到的只是:

URL中#号(井号)的作用第3张

4. 改变井号后面的参数不会触发页面的重新加载但是会留下一个历史记录

仅改变井号后面的内容,只会使浏览器滚动到相应的位置,并不会重现加载页面。

比如从http://www.httpwatch.com/features.htm#filterhttp://www.httpwatch.com/features.htm#print, 浏览器并不会去重新请求页面,但是此操作会在浏览器的历史记录中添加一次记录,即你可以通过返回按钮回答上次的位置。这个特性对Ajax来说特别的有用, 可以通过设置不同井号值,来表示不同的访问状态,并返回不同的内容给用户。(注:在IE6和IE7下井号的改变不会增加历史记录。)

5、可以通过javascript使用window.location.hash来改变井号后面的值

window.location.hash这个属性可以对URL中的井号参数进行修改,基于这个原理,我们可以在不重载页面的前提下创造一天新的访问记录。如标记框架页面当前的页面:

URL中#号(井号)的作用第4张

除此之外,HTML 5新增的onhashchange事件,当#值发生变化时,就会触发这个事件。

6. Googlebot对井号的过滤机制

默 认情况下Google在索引页面的时候会忽略井号后面的参数,同时也不会去执行页面中的javascript。然而谷歌为了支持对Ajax生成内容的索 引,定义了如果在URL中使用“#!”,则Google会自动将其后面的内容转成查询字符串_escaped_fragment_的值。

比如最新的twitter URL:http://twitter.com/#!/username,Google会自动请求http://twitter.com/?_escaped_fragment_=/username来获取Ajax内容。

另外可以用#结合?等元素来标记流量来源,比如区分竞价和自然流量等,这个就很给力了.

免责声明:文章转载自《URL中#号(井号)的作用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ElasticSearch的基本原理与用法对网站的代码采集实例下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Jmeter入门(5)- jmeter取样器的HTTP请求

一、HTTP管理器 位置:线程组右键 ==> 添加 ==> 配置元件 HTTP信息头管理器 添加测试计划 添加线程组 添加HTTP请求 添加请求头(HTTP信息头管理器) 设置请求参数的数据类型Content-Type 常用的数据类型,如下: 值 含义 application/x-www-form-urlencoded 默认值...

spring事务注解@Transactional不生效、不回滚原因

一般情况下在方法上直接添加@Transactional即可,但是极有可能会达不到我们想要的效果,这时就需要添加相应的参数,参数如下。 @Transactional(propagation=Propagation.REQUIRED) //控制事务传播。默认是Propagation.REQUIRED  @Transactional(isolation=Iso...

reuqest模块及UA反扒机制

requests模块 爬虫中一个基于网络请求的模块 pip install requests 作用:模拟浏览器发起请求 编码流程: 1 . 指定url 2 . 发起请求 3 . 获取响应数据(爬取到的页面源码数据) 4 . 进行持久化存储 简单例子: #指定爬取的url (以搜狗为例) url = "https://www.sogou.com"...

JPS 命令详解

JPS 名称: jps - Java Virtual Machine Process Status Tool 命令用法: jps [options] [hostid]               options:命令选项,用来对输出格式进行控制               hostid:指定特定主机,可以是ip地址和域名, 也可以指定具体协议,端口。  ...

echart渐变色

areaStyle: { opacity: 0.8, color: new echarts.graphic.LinearGradient(0, 0, 0, 1, //4个参数用于配置渐变色的起止位置, 这4个参数依次对应右/下/左/上四个方位....

python之路_爬虫之requests模块初始

一、校花网视频爬取 1、正常爬取 import requests import re import hashlib import time import os downLoad_path=r'D:DOWNLOAD' def get_page(url): response=requests.get(url) if response.stat...