URL结构解析

本篇文章主要讲述 url 的概念及构成,如果读者已经非常清楚,可以跳过本节,直接进入下一节的学习。

在互联网中,任何一个可访问的文件或文档都具有一个唯一的地址,这种地址称为统一资源定位符(Uniform Resource Locator,URL),也被称为网址。每个 URL 都有其对应的文件(文档),例如 https://www.xinbaoku.com/archive/B5u5tqcP.html 对应的是《网站到底是什么》这篇文章,https://www.baidu.com/index.html 对应的则是百度的官网首页。

URL 是互联网的基础,最常见的形式就是网页通过链接,也就是 <a> 标签来包含其它 URL,用户通过点击,从当前 URL 跳转到另一个 URL。下面我们看一下 URL 是如何构成的。

1. URL的构成

URL 遵守一种标准的语法,它由协议、主机名、域名、端口、路径、以及文件名这六个部分构成,其中端口可以省略。具体语法规则如下:

scheme://host.domain:port/path/filename

在上述语法规则中,scheme 表示协议,host 表示主机名,domain 表示域名,port 表示端口(可以省略),path 表示文件的路径,filename 表示文件名称。接下来我们详细看一下这几部分到底是如何使用的。

1) 协议

协议用来指明客户端和服务器之间通信的类型。我们经常用到的协议有四种:http、https、ftp 以及 file。这四种协议的使用场景如下表所示:

协议使用场景
协议 使用场景
http(HyperText Transfer Protocol) 超文本传输协议。http 协议可以将编码为超文本的数据从一台计算机传送到另一台计算机,不进行加密。
https(HyperText Transfer Protocol over SecureSocket Layer) 安全超文本传输协议。以安全为目标的 http 通道,安全网页,加密所有信息交换。
ftp(File Transfer Protocol) 文件传输协议。
file 本机上的文件。

2) 主机名

主机名可以向浏览器提供文件站点的名称。www 是我们常见的主机名,例如百度的网址 https://www.baidu.com/、淘宝的网址 https://www.taobao.com/ 使用的都是 www 的主机名。除此之外,还有很多网站使用的是其它主机名。例如新宝库的网址 https://www.xinbaoku.com/ 的主机名是c,网易云音乐的网址 https://music.163.com/ 的主机名是 music。

3) 域名

域名和主机名一起使用,被用来定义服务器的地址。Web 服务器遵守数字网际协议(Internet Protocol,IP),每一台连接到因特网的计算机都有一个固定的 IP 地址。域名即 IP 地址的别名,因为一般的 IP 地址都是长串的数字,为了方便记忆所以使用域名进行替代。简单来说,没有域名(IP)我们就不能上网。

4) 端口

端口用来定义主机上的端口号。如果不写,http 的默认端口号是 80,https 的默认端口号是 443,ftp 的默认端口号是 21。还是拿 新宝库举例说明,不论用户输入 https://www.xinbaoku.com/ 还是 https://www.xinbaoku.com/:80,浏览器都会解析为 新宝库的链接。

5) 路径

路径指定服务器上文件的所在位置。就像我们自己在计算机上保存文件时所指定的文件夹一样,Web 服务器上的文件也有可能是存放在子目录(就是文件夹中的子文件夹)中的。如果是这样,路径中的相邻文件夹需要使用斜线(/)隔开。例如 https://www.xinbaoku.com/archive/views/B5u5tqcP.html 这个网址,它的路径就是 /archive/views。

6) 文件名

文件名用来定义文档或资源的名称。和路径类似,路径指的是文件夹,而它指的是文件夹中的文件。我们在《网站到底是什么》这篇文章中讲到过网页文件的后缀有很多种,比如.html.php.jsp.asp等。

协议需要与 URL 的其它部分用://隔开。百度的网址后面的.com以及 新宝库的.net又称作域后缀(扩展名),用于表明该主机所在的域的类型。