1. URL 的历史
URL 的全称为 Uniform Resource Locator ,翻译为中文是统一资源定位器, 是 Tim Berners-Lee 于 1990 年发明的,同时发明的还有 HTML 等,我在 HTML 入门笔记中提到过 Tim Berners-Lee 和 URL 。如果想对 URL 了解更多的话可以点击: URL Wikipedia
2. URL 的组成
URL 的组成包括协议、域名、端口、路径、查询参数和锚点。以百度的某个网址https://www.baidu.com:443/s?wd=hello#5 来举个例子:
-
链接最左边的
https://就是协议,目前 URL 的协议只有 HTTPS和 HTTP 两种协议,两者的区别在于传输数据时是明文传输还是加密传输, HTTPS 是加密传输的,因此更安全,现在也更为常用 -
域名为
www.baidu.com,通常我们在浏览器上输入网址就是域名,我们也可以直接在浏览器上输入 IP 地址来访问网页 -
端口号为
:443, HTTPS 默认的端口号就为 443 ,而 HTTP 默认的端口号为 80 ,如果想要了解更多对应的端口号可以点击链接: 端口号 Wikipedia -
路径为
/s,表示当前在搜索页面 -
查询参数为
?wd=hello,表示通过百度查询 hello 的意思 -
锚点为
#5,使用这个锚点会让我们在搜索时直接出现在第五个搜索结果处
通过百度的例子我们大概能了解 URL 的各个组成部分,但是并不是每个 URL 都含有全部内容
3. DNS
DNS 的全称为 Domain Name System ,中文为域名系统。在上面对百度的域名介绍中我们说到能直接使用 IP 地址来访问网页,这是因为域名与 IP 地址能通过 DNS 来进行相互映射,一个域名可以对应不止一个 IP 地址,一个 IP 地址也可以对应不止一个域名
如果我们想要获取一个域名对应的 IP 地址,例如百度的 IP 地址,我们可以通过命令 nslookup www.baidu.com 来获取,如下图所示

可以看到 www.baidu.com 对应的 IP 地址有两个,如果你在输入地址时少输入了www. 的话,你会发现你得到的 IP 地址与上面的 IP 地址不同

这就涉及到域名的级别的问题,域名之间是存在级别的,一个域名的层次结构,从右侧到左侧隔一个点依次下降一层
最高级的域名是根域名 .root ,因为每个域名都含有根域名,所以根域名一般不显示
根域名之后是顶级域名,顶级域名包括国家及地区双字代码顶级域(例如 .cn .hk )和通用顶级域(例如 .com .edu .org )
顶级域名下面是二级域名,例如 baidu.com 就是一个二级域名
而在二级域名之后是三级域名,例如 www.baidu.com 就是一个三级域名
为了方面人们的记忆和使用,一般人们会基于公司、产品或服务的名称来创建二级域名或更低级别的域名
4. ping 操作
ping 操作的作用是确认你与你所想访问的域名或者其他主机之间是否存在连接,例如我们要确认当前我们能否连接到百度,可以使用命令 ping baidu.com

可以看到我们和百度之间数据发生与接受的平均时间约为 46ms ,证明我们与百度之间的连接良好