URL 和 URI 的区别,带自己的理解
程序员文章站
2024-02-14 12:56:22
...
先看一下 jdk1.6 上 api 文档的说明
URI 说明
URI 表示一个统一资源标识符的引用,此类的实例不可变
组成部分:[schema:]schema-specific-part[#fragment]
不透明 URI:
schema 部分不是以 / 部分开始 ,不透明 URI 无法进一步解析,例如:
mailto:java-[email protected].sun.com
news:com.lang.java
urn:isbn:096139210x
分层 URI:
schema 部分以 / 字符开始 ,或者不指定 schema ,例如:
http://java.sun.com/j2se/1.3
docs/guide/collections/designfaq.html#28
../../demo/jfc/SwingSet2/src/SwingSet2.java
file:///~/calendar
分层 URI 是可以被解析成多个部分的[scheme:][//authority][path][?query][#fragment]
分层 URI 的 authority 部分,基于服务器的这样指定[[email protected]]host[:port]
像使用 ssh 连接 linux 的,就是这样授权的,例如:
ssh [email protected] -P 22
URL 说明
URL 表示一个统一资源定位符。资源可以是简单的文件或目录,也可以是对更为复杂的对象的引用,例如对数据库或搜索引擎的查询
个人理解
URL 是 URI 的子集,是一种分层 URI 。
常用方法说明
通常我们可以从 class.getResource("相对于类路径以 / 开头")
获取一个 URL
,它是一个文件协议的绝对资源
file:/E:/project/20171208/sanri-tools-maven/target/test-classes/
URI.relativize(URI)
方法用于用基本路径相对化一个绝对路径,使目标 URI 相对于基本 URIURI.resolve(URI)
方法用于根据基本路径和一个相对路径生成一个目标路径的绝对路径
以上两个方法可能看起来比较绕,举个例子:
URI base = new URI("http://www.baidu.com/static");
URI relative = new URI("image/uuid.png");
URI whole = new URI("http://www.baidu.com/static/file/mm.zip");
// resolve 方法例子
base.resolve(relative); // http://www.baidu.com/static/image/uuid.png
base.relativize(whole) // file/mm.zip
上一篇: OpenFeign--概述
下一篇: YII2 路由管理
推荐阅读
-
关于JAVA中URI和URL的区别的理解
-
URL 和 URI 的区别,带自己的理解
-
php进行支付宝开发中return_url和notify_url的区别分析
-
深入理解PHP中的i++和++i的区别
-
深入理解SET NAMES和mysql(i)_set_charset的区别_MySQL
-
对MVVM的理解、MVVM和MVC的区别
-
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)_PHP教程
-
Django学习之十一:真正理解Django的路由分发和反解url原理
-
深入理解PHP中的i++和++i的区别
-
带参数的sql和不带参数的sql存储过程区别第1/2页