URL的组成结构与含义简述

前端之家收集整理的这篇文章主要介绍了URL的组成结构与含义简述前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们每天可能要打开几十个页面,但你是否观察过它们的 URL 地址?接下来带大家“庖丁解牛”,把 URL 拆开看看。

一个标准的 URL 地址由 protocol、hostname、port、path、parameters、query 几部分组成。

接下来以下面这个链接为例进行详细介绍:

http://news.qq.com/a/20160209/012154,htm?a=1&b=2&c=3

1) protocol@H_502_8@ 指 http:// 部分,是协议的意思。协议就是一套规则,定义了数据的封装、打包、拆包和解释的规则,http:// 即表示只能通过 HTTP 这套规则访问这个页面资源。

大家是否还见过 https、ftp、thunder 这些协议头? URL 地址标识了一个资源,协议头表示我们可以通过不同的规则(协议)访问它。当然,前提是存放这些资源的服务器支持这个协议。

在剧院,座位可以看作资源,观众只有获取资源,才能看到剧目。过年时观众比较多,为了防止发生踩踏事件,剧院不但开放正门,还开放两个侧门。可以想象,观众的票面上,一定标识了座位的信息(几排几号),这相当于 URL 的后半部分。

有的票面标了从正门进,有的标了从侧门进,这就相当于 URL 的协议头标识了协议,一种是按走正门的规则进入,另一种是按走侧门的规则进入,观众拿着走正门的票从侧门进入,会被拒绝而无法获取资源(座位),所以采用何种协议至关重要。

前面讨论的前提都是要侧门开放,即服务器支持这种协议。如果不开放侧门,地址就是无效的,访问不到这个资源。

总之,协议头标识了访问具体资源的规则,以后大家看到不同的协议头,就想想 这个例子。当然,也可以设计一个协议,例如 abc://,这叫作自定义协议。

2) hostname@H_502_8@ hostname 称为主机名,在本例的 URL 中,news.qq.com 就是 Hostname。

可以将主机理解为一台名叫 news.qq.com 的机器,这台主机在 qq.com 域名下。qq.com 叫作 一级域名,很多人认为 www.qq.com 是一级域名,其实它只不过是一个二级域名,www 等同于刚才介绍的 news。

www.qq.com、news.qq.com、qzone.qq.com、v.qq.com 等都是二级域名。

3) port@H_502_8@ port 称为端口号,一般 HTTP 的端口号为 80,HTTPS 的为 443,可以理解为计算机有很多个提供服务的点,比如可以用默认的 80 端口来提供服务,也可以用 81 端口来提供服务。

把一个主机比喻成一间房子的话,这间房子可以有 65536 个门,门号就是端口号,这么多端口都可以达到进出的目的。上面的 URL 中没有任何的端口 号,即默认为 80。

以 http://news.qq.com:8080/a/20160209/012154.htm?a=1&b=2&c=3#p=1 为例,这 个 URL 指定了从 8080 这个端口号(即从这个门)访问资源,这个网页服务器必须先 在这个端口部署服务,才能供用户访问(先把门打开,才能提供服务)。

4) path@H_502_8@ 接下来是 /a/20160209/012154.htm/。hostname 后面的一长串全部称为 path,是“路 径”的意思,即最终文件所在的路径和文件名,只不过此地址的文件存储在腾讯的服 务器上,即 news.qq.com 这个域名下的若干台机器上。

5) parameters@H_502_8@ ?a=1&b=2&c=3 这一部分称为参数(parameters ),也叫查询

它的目的是在 URL 中带上一些本地的信息传给服务器,a、b、c 三个字符是为了方便大家理解杜撰的 (在 baidu 的 URL 中的参数是这样的:?ie=utf8&f=8&rsv_bp=1&tn=baidu ),这些 KeyValue 的键值对标识了一些特定的意义,最终要由服务器进行判断处理。

其中参数部分加上一些随便填写的值并不会出错,比如 &d=4,只不过服务器不解析这部分 罢了。

再长的 URL 也是由这几个关键部分组成的,只要大家能分割出上面介绍的几个主要部件,就能看岀各部分的意义。

猜你在找的Web前端相关文章