URL和URI

网络编程 专栏收录该内容
3 篇文章 0 订阅

url+urn=uri

URL 统一资源定位符

URL 英文全称为 Uniform Resource Locator,中文为翻译“统一资源定位符”,是Internet上资源的地址,可以定义为引用地址的字符串,用于指示资源的位置以及用于访问它的协议。

URL是在网络上定位资源的最普遍使用的方式,它提供了一种通过描述其网络位置或主要访问机制来检索物理位置的表示的方法。

URL中描述了协议,该URL用于检索资源和资源名称。如果资源是Web类型资源,则URL在开头包含http / https。同样,如果资源是文件,则以ftp开头,如果资源是电子邮件地址,则以mailto开头。

URL包含以下信息:

  1. 用于访问资源的协议
  2. 服务器的位置(无论是通过IP地址还是域名)
  3. 服务器上的端口号(可选)
  4. 资源在服务器目录结构中的位置
  5. 片段标识符(可选)

例:

https://summer.blog.csdn.net/

如上图所示,其中第一部分用于协议,部分的其余部分用于由域名或程序名称组成的资源。

URN 统一资源名称

URN 英文全称为 Uniform Resource Name,中文翻译为“统一资源名称”,这是用于表示唯一一个实体的标识符,但是有不能给出实体的位置,用于标识持久性 Internet 资源,URN 可以提供一种机制,用于查找和检索定义特定命名空间的架构文件。尽管普通的 URL 可以提供类似的功能,但是在这方面,URN 更加强大并且更容易管理,因为 URN 可以引用多个 URL。举个最简单的例子大家就明白了,那就是:磁力链接,它就是 URN 的一种实现,可以持久化的标识一个 BT 资源,资源分布式的存储在 P2P 网络中,无需中心服务器用户即可找到并下载它。

URI 统一资源标识符

URI 英文全称为 Uniform Resource Identifier,中文翻译为“统一资源标识符”是标识逻辑或物理资源的字符序列,与URL类似,也是一串字符。通过使用位置,名称或两者来标识Internet上的资源;它允许统一识别资源。
uri=url+urn

有两种类型的URI,==统一资源标识符(URL)==和 统一资源名称(URN)

任何URI的通用形式都是:

scheme:[// [user:password @] host [:port]] [/] path [?查询] [#片段]

Scheme(方案):该方案列出了具体语法和URI的任何相关协议。方案不区分大小写,后跟冒号。理想情况下,URI方案应该在互联网号码分配机构(IANA)注册,但也可以使用非注册方案。

权限组件:权限组件由多个部分组成:可选的身份验证部分,主机(由注册名称或IP地址组成) , 以及可选的端口号。身份验证部分包含用户名和密码,用冒号分隔,后跟at(@)符号。在@之后是主机名,然后是冒号,然后是一个端口号。请务必注意,IPv4地址必须采用点十进制表示法,并且IPv6地址必须括在括号中。

查询(可选):查询包含一串非分层数据。虽然语法没有明确定义,但通常是由分隔符分隔的属性值对序列,例如&符号或分号。查询通过问号与前一部分分开。

片段(可选):片段包含片段标识符,该标识符为辅助资源提供方向。

联系与区别

“URI可以分为URL,URN或同时具备locators(url) 和names(urn)特性的一个东西。”

  • 首先,URL是URI的一种。但也不是所有的URI都是URL哦,就好像蝴蝶都会飞,但会飞的可不都是蝴蝶啊,你让苍蝇怎么想!
  • 让URI能成为URL的当然就是那个“访问机制”,“网络位置”。e.g. http:// or ftp://.。
  • URN是唯一标识的一部分,就是一个特殊的名字。

下面就来看看例子吧,当来也是来自权威的RFC:

ftp://ftp.is.co.za/rfc/rfc1808.txt (also a URL because of the protocol)
http://www.ietf.org/rfc/rfc2396.txt (also a URL because of the protocol)
ldap://[2001:db8::7]/c=GB?objectClass?one (also a URL because of the protocol)
mailto:John.Doe@example.com (also a URL because of the protocol)
news:comp.infosystems.www.servers.unix (also a URL because of the protocol)
tel:+1-816-555-1212
telnet://192.0.2.16:80/ (also a URL because of the protocol)
urn:oasis:names:specification:docbook:dtd:xml:4.1.2

这些全都是URI, 其中有些是URL. 哪些? 就是那些提供了访问机制的.

总结

下面到了回答问题的时候了:
当我们讨论web地址的时候,URI和URL那个更准确?

我们经常使用的URI不是严格技术意义上的URL。例如:你需要的文件在files.hp.com. 这是URI,但不是URL–系统可能会对很多协议和端口都做出正确的反应。

你去http://files.hp.com 和ftp://files.hp.com.可能得到完全不同的内容。这种情况可能更加普遍,想想不同谷歌域名上的不同服务啊。

结语
If you don’t mind being “that guy”, URI is probably the more accurate term to use. But if you are in the linguist / “use what’s understood” camp, feel free to go with URL.

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值