精华内容
下载资源
问答
  • url和uri区别

    2021-01-08 16:39:44
    这两天在写代码的时候,由于涉及到资源的位置,因此,需要在Java Bean中定义一些字段,用来...带着这些问题到网上去搜了下,没发现让自己看了明白的解释,于是,想到了Java类库里两个对应的类java.net.URI和java.net
  • URL和URI区别

    万次阅读 多人点赞 2018-03-21 12:21:51
    URI包括URL和URN两个类别,URLURI的子集,所以URL一定是URI,而URI不一定是URL URI = Universal Resource Identifier 统一资源标志符,用来标识抽象或物理资源的一个紧凑字符串。 URL = Universal Resource ...

    URI包括URL和URN两个类别,URL是URI的子集,所以URL一定是URI,而URI不一定是URL

    URI = Universal Resource Identifier 统一资源标志符,用来标识抽象或物理资源的一个紧凑字符串。
    URL = Universal Resource Locator 统一资源定位符,一种定位资源的主要访问机制的字符串,一个标准的URL必须包括:protocol、host、port、path、parameter、anchor。
    URN = Universal Resource Name 统一资源名称,通过特定命名空间中的唯一名称或ID来标识资源。

    url_uri_diff

    举个栗子:

    个人的身份证号就是URN,个人的家庭地址就是URL,URN可以唯一标识一个人,而URL可以告诉邮递员怎么把货送到你手里。

    再举个栗子:

    http://blog.csdn.net/koflance是个URL,通过这个网址可以告诉CDN找到我的博客所在地,并且还告诉用HTTP协议访问,而isbn:0-395-36341-1是RUN,一个国际标准书号,可以唯一确定哪本书。

    目前HTTP规范已经不使用URL,而是使用URI了,所以大家还是用URI吧,准没错!

    HTTP relies upon the Uniform Resource Identifier (URI) standard
    [RFC3986] to indicate the target resource (Section 5.1) and
    relationships between resources.

    Java中的URI和URL组件

    URI组件

    该类是不可变类(Instances of this class are immutable),提供了用于从其组成部分或通过解析其字符串形式创建 URI 实例的构造方法、用于访问实例的各个不同组成部分的方法,以及用于对 URI 实例进行规范化、解析和相对化的方法。

    在java的uri类中,将URI字符串分为绝对RUI和相对URI,或者不透明URI(opaque uri)和分层URI(hierarchical uri)。其中,不透明 URI 为绝对 URI,且不透明的URI无法解析,例如:mailto:java-net@java.sun.com 、news:comp.lang.java、urn:isbn:096139210x,而分层URI即可以为绝对URI,也可以是相对URI,例如http://java.sun.com/j2se/1.3/ 是绝对URI,而../../../demo/jfc/SwingSet2/src/SwingSet2.java是相对URI。

    分层URI
    其结构为:[ scheme :][ // authority][ path][ ? query][ # fragment]
    scheme与fragment部分是授权组成部分,可以基于服务,也可以基于注册表,常见的是基于服务,格式为:[ user-info @] host[ : port]

    在给定实例中,任何特殊组成部分都或者为未定义的,或者为已定义的,并且有不同的值。未定义的字符串组成部分由 null 表示,未定义的整数组成部分由 -1 表示。

    常用方法

    URI normalize()    //规范化此URI的路径。(规范化: 将分层 URI 的路径组成部分中的不必要的 "." 和 ".." 部分移除的过程。每个 "." 部分都将被移除。".." 部分也被移除,除非它前面有一个非 ".." 部分。规范化对不透明 URI 不产生任何效果。) 
    URI relativize(URI uri)    //根据此 URI 将给定 URI 相对化。 
    URI parseServerAuthority()    //尝试将此 URI 的授权组成部分(如果已定义)解析为用户信息、主机和端口组成部分。 
    URI resolve(URI uri)    //根据此 URI 解析给定的 URI。 
    URI resolve(String str)    //解析给定的字符串,然后在此 URI 的基础上构造一个新的 URI。 此方法与进行 resolve(URI.create(str)) 的作用相同。

    URL组件

    提供了解析URL的功能,可以将URL解析成一个结构化的数据,并提供了简单的查找主机和打开到指定资源的连接之类的网络 I/O 操作。

    第一个示例:

    URL url = new URL("http://www.baidu.com");
    //打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。
    InputStream in = url.openStream();// 其内部也调用了openConnection()
    ByteArrayOutputStream output = new ByteArrayOutputStream();
    byte[] buffer = new byte[1024];
    int len = -1;
    // 读取内容不含响应头
    while ((len = in.read(buffer)) != -1)
    {
       output.write(buffer, 0, len);
    }
    System.err.println(new String(output.toByteArray()));

    第二个示例:

    // 方法一 
    URL url = new URL("http://www.sina.com.cn");
    URLConnection urlcon = url.openConnection();
    InputStream is = urlcon.getInputStream();
    
    // 方法二
    URL url = new URL("http://www.yhfund.com.cn");
    HttpURLConnection urlcon = (HttpURLConnection)url.openConnection();
    InputStream is = urlcon.getInputStream();
    
    //方法三
    URL url = new URL("http://www.yhfund.com.cn");
    InputStream is = url.openStream();
    参考:
    URL和URI的区别
    标识互联网上的内容
    RFC 7230, section 2.7: Uniform Resource Identifiers
    HTTP 协议中 URI 和 URL 有什么区别?
    URI 简介
    Java中的URL类

    展开全文
  • URI和URL区别 .

    2013-09-10 22:20:42
    URI和URL区别 .
  • url 和uri区别In IT systems we use a lot of different terms. URI and URL are one of the most popular terms used in IT especially in programming. They can be confused or used interchangeably but they ...
    url 和uri区别

    url 和uri区别

    In IT systems we use a lot of different terms. URI and URL are one of the most popular terms used in IT especially in programming. They can be confused or used interchangeably but they are not the same. In this tutorial, we will explain URI, URL, differences, and similarities between URI and URL.

    在IT系统中,我们使用许多不同的术语。 URI和URL是IT中最流行的术语之一,尤其是在编程中。 它们可以混淆或互换使用,但是它们并不相同。 在本教程中,我们将解释URI,URL,URI和URL之间的区别和相似之处。

    什么是URI(统一资源标识符)? (What Is URI (Unified Resource Identifier)?)

    Unified Resource Identifier or URI is used to provide name, locator, or both for an online resource. Online means can be accessed via a computer network like LAN, WAN, internet, etc.  URI is the most generic resource identifier where it can be used for different resources like Book, Web Page, QR Code etc. Here are some URI examples to understand. URI is defined with the RFC 3986 where URL is defined with the same RFC too.

    统一资源标识符或URI用于为在线资源提供名称,定位符或同时提供二者。 可以通过局域网,局域网,广域网,互联网等计算机网络访问在线方式。URI是最通用的资源标识符,可用于诸如书籍,网页,QR码等各种资源。这是一些需要理解的URI示例。 URI是使用RFC 3986定义的,URL也是使用相同的RFC定义的。

    ISBN 0-486-28557-3
    
    urn:isbn:0-486-28557-3
    
    https://www.poftut.com
    

    什么是URL(统一资源定位符)? (What Is URL (Unified Resource Locator)?)

    Uniform Resource Locator or URL is a subset of the URI which means all URLs are also a URI. URL provides the scheme and location of the resource. URL resource is online which means it can be accessed from LAN, WAN, Internet-like network. URLs generally used in web browsers and applications in order to specify the remote resource like a web page, API, etc. Below are some URL examples. URL is defined with the RFC 3986 where URI is defined with the same RFC too.

    统一资源定位符或URL是URI的子集,这意味着所有URL也是URI。 URL提供资源的方案和位置。 URL资源是在线的,这意味着可以从LAN,WAN,类似Internet的网络访问它。 通常在网络浏览器和应用程序中使用的URL,用于指定诸如网页,API等的远程资源。以下是一些URL示例。 URL用RFC 3986定义,而URI也用相同的RFC定义。

    https://www.poftut.com
    
    smb://poftut.com
    
    ldap://poftut.com:123
    
    ftp://ftp.poftut.com/rfc/rfc1808.txt
    
    http://www.poftut.com/rfc/rfc2396.txt
    
    ldap://[2001:db8::7]/c=GB?objectClass?one
    
    mailto:[email protected]
    
    news:comp.infosystems.www.poftut.com
    
    tel:+1-816-555-1212
    
    telnet://10.0.0.1:80/
    
    urn:oasis:names:specification:docbook:dtd:xml:4.1.2
    

    URI与URL (URI vs URL)

    Well, let’s compare the URI with the URL. Simply we can say that URI is the most generic term which also includes the URL. We list things about URI vs URL.

    好吧,让我们比较一下URI和URL。 简单地说,URI是最通用的术语,其中也包括URL。 我们列出了有关URI和URL的信息。

    • URL is a `locator` where URI is `identifier`.

      URL是一个“定位器”,其中URI是“标识符”。
    • URL is specific for web resources where URI is general which contains URL.

      URL是特定于Web资源的,其中URI是包含URL的常规URL。
    • URL has to have a protocol like http, ftp, tel etc where URI has not to have a protocol.

      URL必须具有HTTP,ftp,tel等协议,而URI不必具有协议。
    • Both URL and URI can be used for relative and absolute links.

      URL和URI均可用于相对和绝对链接。
    • Both URL and URI can accept query parameters.

      URL和URI都可以接受查询参数。
    • Both URL and URI can have fragmented identifiers.

      URL和URI都可以具有分段标识符。
    • According to the W3C definition URL and URI are the same thing where they can be used for each other interchangeably.

      根据W3C的定义,URL和URI是相同的东西,它们可以互换使用。
    LEARN MORE  What Is XML (eXtensible Markup Language)?
    了解更多什么是XML(可扩展标记语言)?

    翻译自: https://www.poftut.com/what-is-difference-between-uri-and-url/

    url 和uri区别

    展开全文
  • URI和URL区别比较与理解

    万次阅读 多人点赞 2018-06-04 10:12:03
    什么URI URI,通一资源标志符(Uniform Resource Identifier, URI),表示的是web上每一种可用的资源,如 HTML文档、图像、视频片段、程序等都由一个URI进行定位的。 <2>URI的结构组成 URI通常由三部分...

    一、URI

    <1>什么是URI

    URI,统一资源标志符(Uniform Resource Identifier, URI),表示的是web上每一种可用的资源,如 HTML文档、图像、视频片段、程序等都由一个URI进行标识的。

    <2>URI的结构组成

    URI通常由三部分组成:

    ①资源的命名机制;

    ②存放资源的主机名;

    ③资源自身的名称。

    (注意:这只是一般URI资源的命名方式,只要是可以唯一标识资源的都被称为URI,上面三条合在一起是URI的充分不必要条件)

    <3>URI举例

    如:https://blog.csdn.net/qq_32595453/article/details/79516787

    我们可以这样解释它:

    ①这是一个可以通过https协议访问的资源,

    ②位于主机 blog.csdn.net上,

    ③通过“/qq_32595453/article/details/79516787”可以对该资源进行唯一标识(注意,这个不一定是完整的路径)

    注意:以上三点只不过是对实例的解释,以上三点并不是URI的必要条件,URI只是一种概念,怎样实现无所谓,只要它唯一标识一个资源就可以了。

    二、URL

    URL是URI的一个子集。它是Uniform Resource Locator的缩写,译为“统一资源定位 符”。

    通俗地说,URL是Internet上描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上。

    采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。URL是URI概念的一种实现方式。

    URL的一般格式为(带方括号[]的为可选项):

    protocol :// hostname[:port] / path / [;parameters][?query]#fragment

    URL的格式由三部分组成: 

    ①第一部分是协议(或称为服务方式)。

    ②第二部分是存有该资源的主机IP地址(有时也包括端口号)。

    ③第三部分是主机资源的具体地址,如目录和文件名等。

    第一部分和第二部分用“://”符号隔开,

    第二部分和第三部分用“/”符号隔开。

    第一部分和第二部分是不可缺少的,第三部分有时可以省略。 

    三、URI和URL之间的区别

    从上面的例子来看,你可能觉得URI和URL可能是相同的概念,其实并不是,URI和URL都定义了资源是什么,但URL还定义了该如何访问资源。URL是一种具体的URI,它是URI的一个子集,它不仅唯一标识资源,而且还提供了定位该资源的信息。URI 是一种语义上的抽象概念,可以是绝对的,也可以是相对的,而URL则必须提供足够的信息来定位,是绝对的。

     

    --------------------------------------------

    更新:看了一下大家的疑问,其实大家对uri可以认为只是唯一识别的编号,类似于大家的身份证号,而url就是身份证住址+姓名,这样是不是就很明显了~~

    更新2:针对大部分同学的疑问,其实纠结的就是URI到底是什么,怎么它就是URI不是URL了,其实文章中都已交代,只要能唯一标识资源的就是URI,在URI的基础上给出其资源的访问方式的就是URL,这是最简单的总结了,希望对大家有所帮助,祝好~~

    展开全文
  • URL URI 区别

    万次阅读 2018-07-15 22:19:09
    URL URI 区别 本文我们讨论URL URI 的主要区别,并通过示例说明这些差异。 URL URI 直接差异来自其定义: Uniform Resource Identifier (URI) − 对任何抽象或物理资源进行完整标识的字符序列。 ...

    URL 和 URI 区别

    本文我们讨论URL 和 URI 的主要区别,并通过示例说明这些差异。

    URL 和 URI

    直接差异来自其定义:

    • Uniform Resource Identifier (URI) − 对任何抽象或物理资源进行完整标识的字符序列。 Uniform
    • Resource Locator (URL) − 除了标识资源可用的位置之外,URI的一个子集描述了访问该资源的主要机制。

    现在我们可以得出结论:每个URL都是一个URI,后面我们会看到情况并非如此。

    语法

    所有URI,不管其是否为URL,需遵循形式:

    scheme:[//authority][/path][?query][#fragment]

    每部分描述如下:

    • scheme − 对于 URL, 是访问资源的协议名称;对其他URI,是分配标识符的规范的名称
    • authority − 可选的组成用户授权信息部分,主机及端口(可选)
    • path − 用于在scheme和authority内标识资源
    • query − 与路径一起的附加数据用于标识资源。对于url是查询字符串
    • fragment − 资源特定部分的可选标识符

    为了方便地识别特定的URI是否是URL,我们可以检查它的scheme。每个URL都必须从以下scheme开始:ftp、http、https、gopher、mailto、news、nntp、telnet、wais、file或prospero。如果不是以此开头,则不是URL。

    现在我们已经了解了语法,让我们看一些示例。下面是uri列表,其中只有前三个是url:

        ftp://ftp.is.co.za/rfc/rfc1808.txt
        https://tools.ietf.org/html/rfc3986
        mailto:john@doe.com
    
        tel:+1-816-555-1212
        urn:oasis:names:docbook:dtd:xml:4.1
        urn:isbn:1234567890

    URL 和 URI的java api区别

    本节我们通过示例演示URL 和 URI的java api区别。

    实例化

    创建URL 和 URI实例很类似,两个类都提供了几个构造函数,接收大部分其组件,仅URI有接收全部组件的构造函数语法:

    @Test
    public void whenCreatingURIs_thenSameInfo() throws Exception {
        URI firstURI = new URI(
          "somescheme://theuser:thepassword@someauthority:80"
          + "/some/path?thequery#somefragment");
    
        URI secondURI = new URI(
          "somescheme", "theuser:thepassword", "someuthority", 80,
          "/some/path", "thequery", "somefragment");
    
        assertEquals(firstURI.getScheme(), secondURI.getScheme());
        assertEquals(firstURI.getPath(), secondURI.getPath());
    }
    @Test
    public void whenCreatingURLs_thenSameInfo() throws Exception {
        URL firstURL = new URL(
          "http://theuser:thepassword@somehost:80"
          + "/path/to/file?thequery#somefragment");
        URL secondURL = new URL("http", "somehost", 80, "/path/to/file");
    
        assertEquals(firstURL.getHost(), secondURL.getHost());
        assertEquals(firstURL.getPath(), secondURL.getPath());
    }

    URI类提供了工具方法,用于创建新的实例,无需检查异常:

    @Test
    public void whenCreatingURI_thenCorrect() {
        URI uri = URI.create("urn:isbn:1234567890");
    
        assertNotNull(uri);
    }

    URL不提供这样方法。由于URL必须从前面提到的一个scheme开始,尝试用不同的scheme创建对象将导致异常:

    @Test(expected = MalformedURLException.class)
    public void whenCreatingURLs_thenException() throws Exception {
        URL theURL = new URL("otherprotocol://somehost/path/to/file");
    
        assertNotNull(theURL);
    }

    两个类都提供了其他的构造函数,读者可以查看相应文档

    URI 和 URL 实例间转换

    URI 和 URL 实例间转换很简单直接:

    @Test
    public void givenObjects_whenConverting_thenCorrect()
      throws MalformedURLException, URISyntaxException {
        String aURIString = "http://somehost:80/path?thequery";
        URI uri = new URI(aURIString);
        URL url = new URL(aURIString);
    
        URL toURL = uri.toURL();
        URI toURI = url.toURI();
    
        assertNotNull(url);
        assertNotNull(uri);
        assertEquals(toURL.toString(), toURI.toString());
    }

    然而,尝试转换非URL会抛出异常:

    @Test(expected = MalformedURLException.class)
    public void givenURI_whenConvertingToURL_thenException()
      throws MalformedURLException, URISyntaxException {
        URI uri = new URI("somescheme://someauthority/path?thequery");
    
        URL url = uri.toURL();
    
        assertNotNull(url);
    }

    打开远程连接

    因为URL是有效的远程资源引用,java提供方法打开远程资源连接并获取其内容:

        @Test
        public void testOpenUrl() throws Exception {
            URL url = new URL("http://www.baidu.com");
            String contents = IOUtils.toString(url.openStream(),"utf-8");
            assertTrue(contents.contains("<!DOCTYPE html>"));
        }

    总结

    我们介绍了一些示例来说明Java中URI和URL之间的区别。分别说明了创建对象实例和转换象的差异。我们还展示了URL具有打开指向资源的远程连接的方法。

    展开全文
  • URL URI 有什么关系

    2019-08-26 08:25:12
    URI和URL区别URI :Uniform Resource Identifier,统一资源标识符; URL:Uniform Resource Locator,统一资源定位符; URN:Uniform Resource Name,统一资源名称。 URI和URL的关系 URL,URN是URI的子集。 什么...
  • uri和url区别与联系(一看就理解)

    千次阅读 多人点赞 2019-10-17 15:07:06
    (先说好这个笔记的主要作用就是为了便于理解区分uri和url,这也是我个人的理解总结,如果不到位的地方可以提出。如果能帮助你区分了这两个概念也算是自己的一个进步了。) uri 什么uri? uri就类似一个...
  • URI和URL区别

    2021-01-20 13:12:41
    二、URI和URL区别及关系 简而言之,URI是标识某一个资源,而URL用位置来标识一个资源。 一、URIURL和URN Web上地址的基本形式是URI,它多种形式:常见的有URL和URN。 URI = Universal Resource Identifier ...
  • URL和URI(一)URL

    千次阅读 2018-09-27 15:47:24
    URL类 public URL(String url) throws MalformedURLException public URL(String protocol, String host, int port, String file) throws MalformedURLException public URL(String protocol, String host, ...
  • HTTP协议中的URI和URL有什么区别? https://www.zhihu.com/question/21950864 HTTP:Hyper Text Transfer Protocol 超文本传输协议 URI:Universal Resource Identifier 统一资源标识符 URL:Universal Resource ...
  • JSP几个内置对象的概述 (1)pageContext对象的...pageContext对象的创建初始化都是由容器来完成的,在JSP页面当中以直接使用pageContext对象。 (2)config对象的主要作用是取得服务器的配置信息。通过pageCont
  • URI,通一资源标志符(Uniform Resource Identifier, URI) URL,统一资源定位符...而url既可以标识其具有唯一性,而且可以根据url找到资源的位置,这就是区别 简单理解就是, uri是你的身份证 url 不仅包含身份...
  • 初学java,最近被一个概念搞得头晕脑胀,就是url和uri的概念和区别,网上查了一大通,发现各种回答眼花缭乱,百科直接粘贴的,胡说八道的,故意绕来绕去的,我估计他自己都没搞懂,按照马士兵的说法就是,通通...
  • URL和URI区别与联系

    2021-05-08 17:01:26
    URL和URI定义: URL(uniform resource locator)是全球资源定位符的英文所写,您平时上网时在IE浏览器中输入的那个地址就是URL。比方:百度 http://www.baidu.com 就是一个URL URI是Web上可用的每种资源 - HTML文档...
  • URL和URI的联系与区别

    2016-05-12 10:29:43
    今天在设置登录过滤器时发现一个一直忽视的小问题,在用HttpServletRequest获取uri时,总是会遇到request.getRequestURI()request.getRequestURL()难以取舍的问题
  • URL和URI区别

    万次阅读 2016-06-27 18:39:38
    对于很多刚入门web开发的程序员新人,相信都过对URL和URI 区分困扰的时候,似乎两者是一体的。对于两者的区别,我当时也是处于糊里糊涂的状态。下面,来简明说明下区分两者的要点,扫清对他们的困扰。 经验式理解...
  • 人们谈论URLURI和URN好像是不同的东西,但是用肉眼看起来都是一样的。 它们之间有什么明显区别
  • URL和URI区别

    2017-07-04 15:40:52
    URIURL,URN从上面的那幅图可以看出来,一共三个不同的概念URI,URL,URN。这讨论这样的问题时,最好的方法就是回到原点啊,这里我们在RFC 3986: Uniform Resource Identifier (URI): Generic Syntax里面收集了点...
  • 一个经典的技术争论,很多人都会问:URLURI和URN,它们之间的区别什么URI可被视为定位符(URL),名称(URN)或两者兼备。统一资源名(URN)如同一个人的名称,而统一资源定位符(URL)代表一个人的住址。换...
  • java URL和URI

    2019-09-09 20:55:32
    对此URL进行操作 https://zhangsan@www.aaa.com:8080/user/index.html?username=dgh&passwd=123#j2se public void testUrl() throws IOException { URL url = new URL(...
  • URL和URI的详细区分(带实例)

    万次阅读 2018-05-30 08:28:01
    1说明:这段时间写android的时候用到了URL和URI...1)Java类库里两个对应的类java.net.URL和java.net.URI,官方的定义分别如下:(URL)A Uniform Resource Locator thatidentifies the location of an Interne...
  • 两种形式: URL:目前URI的最普遍形式就是无处不在的URL或统一资源定位器。 URN:URL的一种更新形式,统一资源名称(URN, Uniform Resource Name)不依赖于位置,并且可能减少失效连接的个数。但是其流行还需...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 354,661
精华内容 141,864
关键字:

url和uri有什么区别