URI: 统一资源标识符(Uniform Resource Identifier)
URL:统一资源定位符( Uniform Resource Locator)
统一资源定位符(Uniform Resource Locator,URL),统一资源名称(Uniform Resource Name,URN)是URI的子集。Web上地址的基本形式是URI,它有两种形式:一种是URL,这是目前URI的最普遍形式。另一种就是URN,这是URL的一种更新形式,URN不依赖于位置,并且有可能减少失效连接的个数。但是其流行还需假以时日,因为它需要更精密软件的支持。
最经常混淆的就是URL与URL,因为这两者是息息相关的,并非所有URI都是URL,因为URI可以是名称、定位符,或者二者兼有的在线资源,而URL只是定位器。URL是URI的子集,意味着所有的URL都是URI,但并不是所有的URL是URI。
如上图所示,你的名字可以是一个URI,因为它可以识别到你,但它可能不是一个URL,因为它无法定位到你,但是你的地址就是一个URL及URI,因为它可一个识别到你,也可以定位到你。再比如一个图片地址,我们即可以使用URI也可以使用URL,但是区别就在于一个相对一个绝对,URL的话是没问题的,因为它既是imgURL又是imgURI,无论当前地址,都能寻找到该图片,但是如果用单纯的imgURI的话,就有可能因为位置变动而找不到对应目录的图片资源,如何选择就要视情况而定了。
//两者返回的内容有何不同? System.out.println(request.getRequestURI()); System.out.println(request.getRequestURL()); //运行访问结果如下: '/travel/testServlet' 'http://localhost/travel/testServlet' //以上访问的是Servlet,其他资源同理。
URN:统一资源名称 (Uniform Resource Name)
URN在web中主要应用是下拉菜单的制作。使用URN时下拉菜单的易扩展性将会得到很大的提高。
P2P下载中使用的磁力链接是URN的一种实现,它可以持久化的标识一个BT资源,资源分布式的存储在P2P网络中,无需中心服务器用户即可找到并下载它。
- 参考资料:
- https://dev.to/flippedcoding/what-is-the-difference-between-a-uri-and-a-url-4455
- https://blog.csdn.net/lp_cq242/article/details/80504612
- https://baike.baidu.com/item/URI
- https://baike.baidu.com/item/URL
- https://baike.baidu.com/item/URN