浅析 URL

266 阅读3分钟

URL的构成

URL是由协议 + 域名或IP + 端口号 + 路径 + 查询字符串 + 锚点

协议 Protocol

为了使数据在网络上传输,网络通信的参与方必须要遵守的规则,这些规则被称为协议(protocol).

常见的协议有HTTP, TCP, UDP

域名和IP

域名是一串字符串,是IP的别称,主要是为了方便人类记忆。

** 域名 **

  • 一个域名可对应多个IP,用于负载均衡
  • 一个IP可对应多个域名,叫做共享主机

** 域名的分类**

域名被分为顶级域名,二级域名,三级域名,这样做的目的是为了减轻DNS服务器的压力,也能让客户端程序更容易的找到域名对应的IP

例如:

  • com 是顶级域名
  • baidu.com 是二级域名
  • www.baidu.com 是三级域名

IP全称Internet Protocol,它主要做了两件事:

  1. 如何定位一台设备
  2. 如何封装数据报文,以跟其他设备交流

几个特殊的ip

  1. 127.0.0.1 表示自己
  2. localhost 通过host指定为自己
  3. 0.0.0.0 它的作用是帮助路由器发送路由表中无法查询的包。

** DNS **

DNS 全称 Domain Name System,它的作用是将域名转换为IP地址。

每当客户端向服务器发起请求时,如果我们以域名的形式给出地址,那么代理服务器首先会去附近的DNS查询该域名所对应的IP地址,得到DNS返回的IP地址后,才会以IP的形式对服务器发起请求。

** nslookup **

全称 name server lookup, 用于查询DNS的记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题。

例如:输入nslookup baidu.com,在我的机器上得到的结果为:

后面返回的 39.156.69.79以及 220.181.38.148均为百度的ip地址

** ping **

ping是一个用来测试网络连接的程序,ping目标主机,可以测试目标主机是否可达及相关信息,例如: 更多的用法,可直接在终端中输入ping, 得到其他可用选项:

端口号

前面说通过IP地址可以定位到网络中的一台设备,但是一台设备中往往有很多进程,端口号就是为了让对应的进程之间能找到对方。

通常,端口号是在建立连接时就确立的。

路径

为了访问到服务器上的文件,需要给服务器传参数,指定文件的具体路径。

比如,我要访问百度的index.html这个文件,我就在百度的域名后面加上我要访问的文件的路径 则为: www.baidu.com/index.html, 其中 /为根目录, index.html为文件名

查询字符串

通过查询字符串,可以在同一个页面,得到不同的内容。 输入 www.baidu.com/s?W=hi ,得到以下结果

输入 www.baidu.com/s?W=hello ,得到以下结果

锚点

可以用锚点,在同一个页面,看到不同的位置 在URL中加入#锚点名就能跳转到该页面的该节点。

ps: 锚点这个参数不会被传到服务器中。