URL的构成
URL是由协议 + 域名或IP + 端口号 + 路径 + 查询字符串 + 锚点
协议 Protocol
为了使数据在网络上传输,网络通信的参与方必须要遵守的规则,这些规则被称为协议(protocol).
常见的协议有HTTP, TCP, UDP。
域名和IP
域名是一串字符串,是IP的别称,主要是为了方便人类记忆。
** 域名 **
- 一个域名可对应多个IP,用于负载均衡
- 一个IP可对应多个域名,叫做共享主机
** 域名的分类**
域名被分为顶级域名,二级域名,三级域名,这样做的目的是为了减轻DNS服务器的压力,也能让客户端程序更容易的找到域名对应的IP
例如:
- com 是顶级域名
- baidu.com 是二级域名
- www.baidu.com 是三级域名
IP全称Internet Protocol,它主要做了两件事:
- 如何定位一台设备
- 如何封装数据报文,以跟其他设备交流
几个特殊的ip
- 127.0.0.1 表示自己
- localhost 通过host指定为自己
- 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: 锚点这个参数不会被传到服务器中。