URI、URL和URN
URL( Uniform Resource Locator )
1、URL是什么?有什么用?
URL(统一资源定位符)是Internet上资源的地址,可以定义为引用地址的字符串,用于指示资源的位置以及用于访问它的协议。
URL是在网络上定位资源的最普遍使用的方式,它提供了一种通过描述其网络位置或主要访问机制来检索物理位置的表示的方法。
URL中描述了协议,该URL用于检索资源和资源名称。如果资源是Web类型资源,则URL在开头包含http / https。同样,如果资源是文件,则以ftp开头,如果资源是电子邮件地址,则以mailto开头。
2、URL的一般格式为(带方括号[]的为可选项):
protocol :// hostname[:port] / path / [;parameters][?query]#fragment
1)Protocol
访问资源所使用的协议类型,常用的协议类型有
2)hostname
请求的域名,表明正在请求的服务器,也可直接使用IP。
3)Port
指定服务器连接的网络端口号,此项是可选项,若省略则自动使用默认端口号。
4)Path
指定服务器上的文件路径来定位特指的资源
5)query( Quering String )
指定的文件路径内的资源,可以使用查询字符串传入任意参数。
6)Fregment
使用片段标识符通常可标记出已获取资源中的子资源(文档中的某个位置)
3、URL包含以下信息:
1、用于访问资源的协议
2、服务器的位置(无论是通过IP地址还是域名),服务器上的端口号(可选)
3、资源在服务器目录结构中的位置, 如目录和文件名等。
4、片段标识符(可选)
第一部分和第二部分用“😕/”符号隔开,
第二部分和第三部分用“/”符号隔开。
第一部分和第二部分是不可缺少的,第三部分有时可以省略。
URL 由协议、域名、端口、路径、查询字段、片段标识符 组成;举例如下:
http://www.baidu.com:888/page/index?id=1&name=daxia#article
- 协议:http协议,也可以是其它协议(https,ftp,ws等)
- 域名:www.baidu.com
- 端口:888
- 目录路径:/page/index
- 查询字段:?id=1&name=daxia
- 片段标识符 :#article
再举例
URI (Uniform Resource Identifier, URI)
1、URI是什么?有什么用?
URI(统一资源标识符)是标识逻辑或物理资源的字符序列,与URL类似,也是一串字符。通过使用位置,名称或两者来标识Internet上的资源;它允许统一识别资源。
有两种类型的URI,统一资源标识符(URL)和统一资源名称(URN)。
2、URI通常由三部分组成:
①资源的命名机制;
②存放资源的主机名;
③资源自身的名称。
任何URI的通用形式都是:
scheme:[// [user:password @] host [:port]] [/] path [?查询] [#片段]
Scheme(方案):该方案列出了具体语法和URI的任何相关协议。方案不区分大小写,后跟冒号。理想情况下,URI方案应该在互联网号码分配机构(IANA)注册,但也可以使用非注册方案。
权限组件:权限组件由多个部分组成:可选的身份验证部分,主机(由注册名称或IP地址组成) , 以及可选的端口号。身份验证部分包含用户名和密码,用冒号分隔,后跟at(@)符号。在@之后是主机名,然后是冒号,然后是一个端口号。请务必注意,IPv4地址必须采用点十进制表示法,并且IPv6地址必须括在括号中。
查询(可选):查询包含一串非分层数据。虽然语法没有明确定义,但通常是由分隔符分隔的属性值对序列,例如&符号或分号。查询通过问号与前一部分分开。
片段(可选):片段包含片段标识符,该标识符为辅助资源提供方向。
URI举例
https://www.csdn.net/wc_445453/mall/detail/1235
我们可以这样解释它:
①这是一个可以通过https协议访问的资源,
②位于主机 www.csdn.net上,
③通过“/wc_445453/mall/detail/1235”可以对该资源进行唯一标识(注意,这个不一定是完整的路径)
注意:以上三点只不过是对实例的解释,以上三点并不是URI的必要条件,URI只是一种概念,怎样实现无所谓,只要它唯一标识一个资源就可以了。
生活中,A分享一部电影给B,需要告诉:
- 使用FTP协议访问mysite.net,端口是8888
- 登入用户是admin,密码是123
- 进入到/share/movie目录下
- 转换为二进制模式
- 下载名为Black的电影
写为URI为
ftp://admin:123@mysite.net:8888/share/movie/Black Gump.mkv
URL和URI之间的主要区别
URL是统一资源定位器,用于标识资源;URI(统一资源标识符)提供了更简单和可扩展的标识资源的方法。URL是URI的子集,下面我们就来看看一下URL和URI的主要区别是什么。
1、作用的区别
URL(统一资源定位符)主要用于链接网页,网页组件或网页上的程序,借助访问方法(http,ftp,mailto等协议)来检索位置资源。
URI(统一资源标识符)用于定义项目的标识,此处单词标识符表示无论使用的方法是什么(URL或URN),都要将一个资源与其他资源区分开来。
2、可以说URL是URI(URL是URI的子集),但URI永远不能是URL。
3、协议区别
URL指定要使用的协议类型,而URI不涉及协议规范
URN ( Uniform Resource Name )
URN是什么?有什么用?
URN是统一资源名称,是作为特定内容的唯一名称使用的,与目前的资源所在地无关
URN作用:通过名字来标识资源的
如图书的编号(ISBN)urn:isbn:0234663。
什么是ISBN?
总结
从集合的角度来考虑,URN
和 URL
都是 URI
的子集:
下面以一个网址为例,清晰的展示URI
、URN
、URL
三者的内容,可以更加直观的反应三者的关系:
URL:指定位置的 URI
URN:指定名称的 URI
URI:同时指定名称和位置的 URI