URI是一个指向资源的字符串。统一资源标识符,如何标识的那?它没有说。
而URL和URN通过不同的标识方式来对URL进行了实现。
URL通过定位的方式来标识网络上的资源,而URN通过命名的方式来标识网络上的资源。
例如同样是main.java这个资源,你可以使用http://192.168.154.130:8080/src/main.java来标识它,这个字符串你可以说是URI,也可以说是URL,它通过具体的位置来标识资源。
而URN是通过命名的方式,比如我给main.java一个唯一的名字"SALKJ9783HYI23LK"来标识它,这个串你可以说是URI也可以说是URN。当我们拿到这个URN,如何获得它的位置那?这时候就需要特定的解析器来完成了,这个解析器能够解析"SALKJ9783HYI23LK"然后找到main.java的地址。