1. URL是什么

URL全称为Uniform Resource Locator,即统一资源定位符,是www万维网中的重要组成部分。万维网中的每一个页面都有一个对应的url,通过输入url地址向服务器发起页面请求。通过url,不仅可以访问到不同的页面,也可以访问到同一页面的不同内容,或者同一页面同一内容的不同内容块,这些均由url管理,那么url是怎么实现这些区分的呢?

2. URL的重要组成

万维网上的任何一个网站的正常运行都离不开服务器,万维网的运行原理就是,输入一个地址,通过该地址找到对应的服务器,向该服务器请求html页面,并交由浏览器解析,然后浏览器负责将页面以可视化的形式展示出来。这个找到服务器的地址就是ip,难记的ip一般会绑定到一个好记的域名上,因此URL的重要组成部分就是域名,或ip。通过URL中的域名即可找到要请求的服务器,然后进行更细一步的划分。

3. 如何请求不同的页面

向服务器请求的html页面其实是存储在服务器端的文件内容,通过向服务器发送请求即可下载该文件并进行解析。因此不同的页面的请求可以通过路径得到,就像访问我们自己的电脑的文件夹一样。” / “是根目录的意思。例如访问百度页面时,在地址栏显示的是” https://www.baidu.com/ “,跟在百度域名后面的” / “,即是访问百度服务器根目录的意思。如在百度搜索栏输入搜索词进入的页面的地址栏的前面部分为” https://www.baidu.com/s?wd=测试数据) “,可以看到百度的搜索页面在根目录下的s文件目录下。

4. 如何请求到同一页面的不同内容

有时候仔细查看会发现相同路径目录下的页面内容是不一样的,如百度,输入不同的关键字,细看地址栏可以看到前缀是一样的,页面的排版和构成是一样的。例如在百度搜索哈哈哈,得到的url是” https://www.baidu.com/s?wd=哈哈哈 “,可以看到也是根目录的s文件目录下。那是因为可以通过不同的查询参数获得不同的页面内容,查询参数的写法即” ?参数名=参数 “等等形式。参数传参可以有多个,通过 & 符号连接。在url中没有搜索功能的可没有该参数。

5. 如何请求到同一页面同一内容的不同内容块

有时候在同一个页面同一个搜索结果页面下,有时候页面内容过长,页面内容会根据标题等分模块,便可通过搜索或者目录的形式跳转到对应的模块,url便为该部分流出空间,语法格式为” #内容块名 “,称为锚点,点击可跳转到对应的内容块。例如 https://developer.mozilla.org/zh-CN/docs/Learn#参见 ,即可跳到该页面的” 参见 “内容块。

6. URL完整构成

综上所述,URL的完整构成为:协议(http或https)://域名(或ip):端口号(可省略,默认是80端口)/路径/查询参数/锚点。

7. 注意事项

  1. 锚点是不允许有中文的,我们在地址栏看到的中文锚点名实际存储并传输的是一串乱码似的字符串,如上述的中文锚点,从地址栏复制黏贴下来,得到的是 https://developer.mozilla.org/zh-CN/docs/Learn#参见 ,可以看到” 参见 “是一串乱码字符串。
  2. 锚点的参数值是不会传递给服务器的,锚点是由浏览器负责执行对应功能的,不归服务器管理。