URI、 URL 和 URN 的区别
1. URI
URI = Universal Resource Identifier 统一资源标志符
URI采用一种特定语法标识一个资源的字符串。所标识的资源可能是服务器上的一个文件。不过,也可能是一个邮件地址、新闻消息、图书、人名、Internet主机或者任何其它内容。
通过URI找到资源是通过对名称进行标识,这个名称在某命名空间中,并不代表网络地址。
它包含URL和URN。
支持的协议有http、https、ftp、mailto、magnet、telnet、data、file、nfs、gopher、ldap等
java还大量使用了一些非标准的定制模式,如rmi,jar、jndi和doc,来实现各种不同用途。
2. URL
URL = Universal Resource Locator 统一资源定位符
URL唯一地标识一个资源在Internet上的位置。不管用什么方法表示,只要能定位一个资源,就叫URL。
示例:
http://www.jianshu.com/u/1f0067e24ff8
ftp://www.example.com/resource.txt
3. URN
URN = Universal Resource Name 统一资源名称
URN它命名资源但不指定如何定位资源,比如:只告诉你一个人的姓名,不告诉你这个人在哪。例如:telnet、mailto、news 和 isbn URI 等都是URN。
比如 urn:issn:1535-3613 则不属于URL(统一资源定位符),因为根据该标识符无法定位任何到资源。
示例:
urn:issn:1535-3613 (国际标准期刊编号)
urn:isbn:9787115318893 (国际标准图书编号)
mailto:jijs@jianshu.com (简单邮件传输协议)
tel:+1-81-555-1212
URI、URL和URN区别
- URI 指的是一个资源
- URL 用地址定位一个资源;
- URN 用名称定位一个资源。
举个例子:
去寻找一个具体的人(URI);如果用地址:XX省XX市XX区...XX单元XX室的主人 就是URL;如果用身份证号+名字去找就是URN(身份证号+名字 无法确认资源的地址) 。
在Java类库中,URI类不包含任何访问资源的方法,只能标识资源。URL类可以访问资源,可以获取指定资源的流信息。
URL格式
URL格式1. 协议
指定使用的传输协议,如:http、https、ftp等
2. 登录信息
可选,指用户名和密码作为从服务器端获取资源时必要的登录信息(身份认证)。
3. 服务器地址
可以是域名www.jianshu.com,也可以是ip:192.168.1.10
4. 服务器端口
可选,指定服务器连接的网络端口。,若省略则使用该协议的默认端口。
5. 文件路径
指定服务器上的路径来定位指定的资源。
6. 参数:
可选,用于给动态网页(如使用CGI、ISAPI、PHP/JSP/ASP/ASP.NET等技术制作的网页)传递参数,可有多个参数,用“&”符号隔开,每个参数的名和值用“=”符号隔开。
7. 片段:
可选,片段用于指定网络资源中的片断。html页面中片段则是描点。例如一个网页中有多个名词解释,可使用片段可直接定位到某一名词解释(描点的位置)。
想了解更多精彩内容请关注我的公众号