简明URI

URI

URI和HTML以及HTTP协议共同构成了WEB的三大重要技术。URI(Uniform Resource Identifier,统一资源标识符),就像英特网上的邮政地址一样,在世界范围内唯一标识并定位信息资源。URI 有两种形式,分别称为 URL和 URN。也就是说,URL是URI的一种实现方式,它是URI的子集。

URN(Uniform Resource Name,统一资源名)通过名字来寻找资源,跟位置无关。比如,不论因特网标准文档 RFC2141位于何处(甚至可以将其复制到多个地方),都可以用下列 URN 来命名它:urn:ietf:rfc:2141,无论这个资源被放在哪台机器上,都可以被找到。这个创想很美好,但目前URN缺乏一个解析资源的互联网基础资源,也未被大规模使用。或许随着区块链技术和元宇宙发展,能够支撑互联网资源建成,URN的美好愿景或在不久将来可实现。

URL(Uniform Resource Locator,统一资源定位符)是最常用的,基本可以等同于URI。我们接下来就详细讨论URL。

URL

URL是因特网资源的标准化名称。URL指向一条条电子信息片段,告诉你它们位于何处,以及如何与之进行交互。浏览器通过URL知道如何对资源进行访问和处理。

URL格式

大多数 URL方案的 URL语法都建立在这个由9部分构成的通用格式上:

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

<scheme>代表协议,可是HTTP、FTP、SMTP;

<user>:<password> 分别代表用户名和密码;

<host>可以是域名或者主机ip地址;

<port>主机端口号,很多方案有自己默认的端口号,如果采样默认端口号,此时可以不写port。比如ftp协议默认是21,http协议默认80,https协议默认443;

<path>资源路径,用/分割,可以多层路径;

;<params>参数字段,在某些协议中使用,可以有多个,用分号分割。这个参数是用于配置协议的

?<query>查询字符串,一般用于查询数据,可以有多个,用&分割。

#<frag>是URL的片段,用于浏览器解析,浏览器从服务器获得了整个资源之后,会根据片段来显示你感兴趣的那部分资源。

以下是常见的一些URL示例。

https://www.baidu.com/s?wd=%E6%88%91

https://www.cnblogs.com:80/deepforest/

http://www.joes-hardware.com/hammers;sale=false/index.html;graphics=true

http://joe:joespasswd@www.joes-hardware.com/sales_info.txt;

ftp://anonymous@ftp.prep.ai.mit.edu/pub/gnu

http://www.joes-hardware.com/inventory-check.cgi?item=12731&color=blue

http://www.joes-hardware.com/tools.html#drills

相对URL

URL可以是绝对URL地址,也可以是相对URL地址。相对 URL是不完整的。要从相对 URL中获取访问资源所需的全部信息,根据基础的 URL进行解析和推断出完整的URL地址。

相对URL为保持一组资源(比如一些HTML页面)的可移植性提供了一种便捷方式。如果使用的是相对 URL,就可以在复制一组文档的同时,仍然保持链接的有效性,

URL编码

由于历史原因,URL只能使用ASCII字符集表示,准确的说就是Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符。因此,对于URL中带有其他语言,比如中文的,URL就需要进行转义。Url编码通常也被称为百分号编码(Url Encoding,also known as percent-encoding),是因为它的编码方式非常简单,使用%百分号加上两个表示字符 ASCII 码的 十六进制数来表示一个英文。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悟空学编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值