URL统一资源定位符的完全解读

所属分类: 网络 / 网络其他 阅读数: 542
收藏 0 赞 0 分享

URL(Uniform Resource Locator ,统一资源定位符)是浏览器寻找信息时所需的资源位置。通过URL这种因特网的标准化名称,人类和应用程序才能找到并使用因特网上大量的数据资源。本文将介绍URL的语法,Web客户端支持的URL快捷方式,URL编码和字符规则等等。

服务器资源名被称为URI(统一资源标识符),而我们常说的URL,实际上是URI的一个子集,也是URI最常见的形式。除此之外,URI还包括URN(其通过名字来识别资源,与它们当前所处位置无关,现仍处于试用阶段)。实际上HTTP应用程序处理的只是URL,所以下面讲的基本都是URL。

1. URL的语法
大多数URL语法都建立在以下9部分构成的通用格式上,其中最重要的方案(scheme)、主机(host)和路径(path):

复制代码
代码如下:

<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>

方案(scheme):它会告诉负责解析URL的应用程序应该使用什么协议,其大小写无关。一般有http、https、ftp、mailto、telnet等等。例子:
复制代码
代码如下:
</font>http://www.baidu.com

主机与端口(host、port):主机标识了因特网上能够访问资源的宿主机器,可用主机名(域名)或IP地址表示;端口标识了服务器正在监听的网络端口,对下层使用TCP协议的HTTP来说,默认端口号为80。例子:http://115.156.216.106:3000
用户名与密码(user、password):有一些服务器需要用户输入用户名和密码才允许访问数据。若URL是FTP协议而没有指定这两者,浏览器会自动插入“anonymous”和一个默认密码。例子:
复制代码
代码如下:
ftp://anonymous:my_passwd@ftp.prep.ai.mit.edu/pub/gnu

路径(path):说明了资源位于服务器的什么地方,通常像一个分级的文件系统路径。例子:
复制代码
代码如下:
http://localhost:3000/css/common.css

参数(params):向应用程序提供它们所需的输入参数,以便正确地与服务器进行交互,形式为key-value对列表,由“;”将其与URL其余部分分隔开来。例子:
复制代码
代码如下:
ftp://prep.ai.mit.edu/pub/gnu;graphics=true

查询字符串(query):可以通过查询字符串来缩小所请求资源的范围,形式同样为key-value对,之间用字符“&”分隔,由“?”将其与URL其余部分分隔开来。例子:
复制代码
代码如下:
http://localhost/test?id=123&show=false

片段(frag):表示一个资源内部的片段,通常用于在页面中设置“书签”并实现页内跳转。片段出现在URL的最右边,前面有一个字符“#”。注意客户端不会将片段发送到服务器,浏览器从服务器获得整个资源后,会根据片段在页内跳转到指定的位置。例子:
复制代码
代码如下:
http://localhost/test#hehe

2. URL快捷方式
URL有两种方式:绝对的和相对的。像上面列举的都是绝对URL,包含了访问资源所需的全部信息。相对URL是一种简写方式,需要相对一个基础URL进行解析。
相对URL到绝对URL的转换处理,首先是要找到基础URL,一般可以显示提供(比如HTML文档定义一个标签显式指定基础URL),或者在封装资源中提供(比如HTML文档中的a标签链接,其基础URL就是这个HTML文档本身)。接着就是通过以下算法把相对URL转换成绝对URL。
2016616120208810.jpg (828×752)

3. URL字符与编码
通常来说,URL采用的是US-ASCII字符集,但是这有很多局限性,因此用一种“转义”表示法来表示不安全字符,通过这种编码机制来避开各种限制。这种转义表示法包含一个百分号“%”,后面跟着两个表示ASCII字符的十六进制数。例如URL中的“~”编码成“%7E”,空格编码成“%20”,“%”编码成“%25”。此外URL还有一些字符用作保留字符,如%/.#?;:@&=等等,此处不再赘述。
URL是一种强有力的工具,可以用来命名所有现存对象,也可以很方便地包含一些新格式。但它并不完美,它们表示的是实际的地址而不是准确的名字,这就意味着如果资源被移走了,URL也就失效了(404 not found)。URN就是为了应对这种情况的,无论对象搬移到什么地方,URN都能为对象提供一个稳定的名称。当然,URN背后的思想已经提出一段时间了,但是从URL转换成URN是一项巨大的工程,标准化工作的进程非常缓慢,所以现在因特网资源仍以URL来命名,而且这种趋势仍会保持相当长一段时间。

更多精彩内容其他人还在看

怎么开通联通免费WLAN?联通WLAN免费开通的详细教程

怎么开通联通免费WLAN?相比移动电信的收费WLAN,联通提供免费的WLAN,测试带宽4M左右,下面小编就给大家演示一下怎么开通和使用,需要的朋友可以参考下
收藏 0 赞 0 分享

公共网络无法连接 显示黄色叹号的解决方法

很多时候我们在上着网的时候会突然断线,然后再也无法连接上,并且电脑右下角的本地连接图标上会出现一个叹号,提示网络连接受限制或无连接,下面小编就为大家介绍公共网络无法连接,显示黄色叹号的解决方法介绍,希望能对大家有所帮助
收藏 0 赞 0 分享

宽带网络怎么设置?宽带网络设置方法

宽带路由怎么设置一直困扰着很多初次配置路由的朋友们,那么宽带网络怎么设置?下面小编就为大家介绍宽带网络设置方法,希望能对大家有所帮助
收藏 0 赞 0 分享

DNSPod DNS(119.29.29.29)无劫持怎么样?解析速度对比评测

很多朋友终于都忍受不了国内疯狂的电信运营商DNS劫持现象,旗下的DNSPod推出DNSPod公共DNS服务,主打安全无劫持,那速度怎么样呢?解析准确率又如何呢?下面小编来为大家简单测试一下
收藏 0 赞 0 分享

电脑网络连接失败 网卡只有发送没有接收该怎么办?

电脑网络连接失败 网卡只有发送没有接收该怎么办?电脑没法上网,网线和网络都没有问题,就是测试发现有发送包但接收包为0,该怎么办呢?下面分享解决办法,需要的朋友可以参考下
收藏 0 赞 0 分享

怎么查看自己的Wifi是否被盗用 怎么查看wifi有几个人用

在使用wifi上网的时候,如果使用的人多会影响网速,所以一般都会设置密码,但是现在有很多能破解密码的软件,那么如何查看自己的wifi有没有被盗用?到底有多少个人用呢?下面脚本之家小编教大家怎么查看自己的Wifi是否被盗用,需要的朋友可以参考下
收藏 0 赞 0 分享

Wifi密码怎么看?常用Wifi密码排名大全

如今Wifi无线网络已经非常流行,有时候如果需要临时上网,打算连接这些搜索到的Wifi,但没有密码怎么办?下面小编位大家介绍Wifi密码怎么看以及常用的WiFi密码吧
收藏 0 赞 0 分享

路由器与无线网卡连接故障详细分析

在使用路由器时,会顺便使用同一品牌的无线网卡,这样对兼容性是最好的,可以有效的提升无线网的传输速度,但在使用过程中,也会出现各种不同的故障。
收藏 0 赞 0 分享

电信流量不清零是真的吗 10月1日起中国电信流量不清零

运营商流量不清零终于要开始无门槛实施了,至少中国电信是这样。从网友@看啊就是這只貓曝光的图片来看,中国电信已经引发了“关于套餐内流量单月不清零实施方案的通知”,通知中明确表示,从10月1日开始,中国电信所有手机上网按流量计费的月套餐用户
收藏 0 赞 0 分享

无线网传输变慢的解决办法

无线局域网是越来越多用户采用的组网方式,也被称为WLAN(WirelessLAN),安装十分方便,不需要重新布线、不会破坏家庭原有装修,相比有线网络,无线网络要灵活得多。
收藏 0 赞 0 分享
查看更多