网络世界中的URI和URL

有意思  有意思

今天我们来看看URI和URL到底是啥关系,是父子还是仇人?

hhhh进入正题

URI,也就是统一资源标识符(Uniform Resource Identifier)。因为它经常出现在浏览器的地址栏里,所以俗称为“网络地址”,简称“网址”,URI包含有 URL 和 URN 两个部分。

URI 主要有三个基本的部分构成:

http://nginx.org/en/download.html

1.协议名:即访问该资源应当使用的协议,在这里是“http”;

2.主机名:即互联网上主机的标记,可以是域名或 IP 地址,在这里是“nginx.org”;

3.路径:即资源在主机上的位置,使用“/”分隔多级目录,在这里是“/en/download.html”。

URL,统一资源定位符(Uniform Resource Locator),URI的子集,也就是说每个URL都是URI

URN统一资源名称(Universal Resource Name)。URN只命名资源而不指定如何定位资源,比如urn:isbn:0451450523指定了一本书的ISBN,可以唯一标识这本书,但是没有指定到哪里定位这本书,这就是URN。

目前的互联网中,URN用得非常少,所以几乎所有的URI都是URL,一般的网页链接我们既可以称为URL,也可以称为URI。

现在来详细看看URI的基本组成

1.scheme 代表协议名,例如http,https,ftp

2.host指的是主机名  port指的是端口号, HTTP 的默认端口号是 80,HTTPS 的默认端口号是 443。

3.path指的是路径

4.query指的是查询参数,参数为“key=value”的字符串格式,用&连接

现在来详细看看URI的完整格式

完整格式比基本格式多了一个#fragment 和 user:passward@

“user:passwd@”,表示登录主机时的用户名和密码,但现在已经不推荐使用这种形式了(RFC7230),因为它把敏感信息以明文形式暴露出来,存在严重的安全隐患。

#fragment”,它是 URI 所定位的资源内部的一个“锚点”或者说是“标签”,浏览器可以在获取资源后直接跳转到它指示的位置。

接下来我们再看看URI编码

URI 里使用英语以外的汉语、日语等其他语言时,URI会将其转义,转义的规则有点“简单粗暴”,直接把非 ASCII 码或特殊字符转换成十六进制字节值,然后前面再加上一个“%”。例如“银河”会被转义成“%E9%93%B6%E6%B2%B3”

哈哈哈,URI和URL还傻傻分不清楚嘛。

发布了70 篇原创文章 · 获赞 25 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/a66666_/article/details/104011025