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://music.163.com/ 的主机名是 music。

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

4) 端口
端口用来定义主机上的端口号。如果不写,http 的默认端口号是 80,https 的默认端口号是 443,ftp 的默认端口号是 21。还是拿 C语言中文网举例说明,不论用户输入 http://c.biancheng.net/ 还是 http://c.biancheng.net/:80,浏览器都会解析为 C语言中文网的链接。

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

6) 文件名
文件名用来定义文档或资源的名称。和路径类似,路径指的是文件夹,而它指的是文件夹中的文件。比如.html 、.php、 .jsp、.asp等。
协议需要与 URL 的其它部分用://隔开。百度的网址后面的.com以及 C语言中文网的.net又称作域后缀(扩展名),用于表明该主机所在的域的类型。