一、URL特殊符号解析URL无法显示某些特殊符号,这个时候就要使用编码了。编码的格式为:一个百分号,后面跟对应字符的ASCII(16进制)码值。例如,空格的编码值是”%20“。 URL中易出现的特殊字符:
转义字符的原因:
二、URL中#号(井号)的作用1. 井号在URL中指定的是页面中的一个位置 井号作为页面定位符出现在URL中,比如:http://www./features.htm#print ,此URL表示在页面features.htm中print的位置。浏览器读取这个URL后,会自动将print位置滚动至可视区域。 井号作为页面定位符出现在URL中,比如:http://www./features.htm#print ,此URL表示在页面features.htm中print的位置。浏览器读取这个URL后,会自动将print位置滚动至可视区域。 在页面上添加锚点的方法为:<a name=”print”></a>或使用<div id=”print” >。 3. 任务位于井号后面的字符都是位置标识符 不管第一个井号后面跟的是什么参数,只要是在井号后面的参数一律看成是位置标识符。 比如这样一个链接(http:///?color=#ffff&shape=circle),后面跟的参数是颜色和形状,但是服务器却并不能理解URL中的含义。服务器接收到的只是: 4. 改变井号后面的参数不会触发页面的重新加载但是会留下一个历史记录 仅改变井号后面的内容,只会使浏览器滚动到相应的位置,并不会重现加载页面。 比如从http://www./features.htm#filter到http://www./features.htm#print,浏览器并不会去重新请求页面,但是此操作会在浏览器的历史记录中添加一次记录,即你可以通过返回按钮回答上次的位置。这个特性对Ajax来说特别的有用,可以通过设置不同井号值,来表示不同的访问状态,并返回不同的内容给用户。(注:在IE6和IE7下井号的改变不会增加历史记录。) 5、可以通过javascript使用window.location.hash来改变井号后面的值 window.location.hash这个属性可以对URL中的井号参数进行修改,基于这个原理,我们可以在不重载页面的前提下创造一天新的访问记录。如标记框架页面当前的页面: 除此之外,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中“#” “?” &“”号的作用1. # 10年9月,twitter改版。一个显著变化,就是URL加入了"#!"符号。比如,改版前的用户主页网址为http://twitter.com/username改版后,就变成了http://twitter.com/#!/username
GET /index.html HTTP/1.1 Host: www.
(3)#后的字符 GET /?color= HTTP/1.1 Host: www.
(4)改变#不触发网页重载
(5)改变#会改变浏览器的访问历史 (6)window.location.hash读取#值 (7)onhashchange事件
对于不支持onhashchange的浏览器,可以用setInterval监控location.hash的变化。 (8)Google抓取#的机制 注 AJAX = 异步 JavaScript和XML(标准通用标记语言的子集)。AJAX 是一种用于创建快速动态网页的技术。 2. ? (1)连接作用:比如 http://www./Show.asp?id=77&nameid=2905210001&page=1 (2)清除缓存:比如 http://www.xx/index.html http://www.xx/index.html?test123123 两个url打开的页面一样,但是后面这个有问号,说明不调用缓存的内容,而认为是一个新地址,重新读取。 3. & 不同参数的间隔符 |
|