URI和URL的区别
1、URI是以一种抽象的,高层次概念定义统一资源标识,而URL则是具体的资源标识的方式。URL是一种URI。
2、格式不同:URL的格式一般由下列三部分组成:第一部分是协议(或称为服务方式);第二部分是存有该资源的主机IP地址(有时也包括端口号);第三部分是主机资源的具体地址。URI一般由三部分组成:访问资源的命名机制;存放资源的主机名;资源自身的名称,由路径表示。
3、在Java的URI中,一个URI实例可以代表绝对的,也可以是相对的,只要它符合URI的语法规则。而URL类则不仅符合语义,还包含了定位该资源的信息,因此它不能是相对的,schema(protocol)必须被指定。
URI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。而URL是uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。
因此,URL是一种具体的URI,它不仅唯一标识资源,而且还提供了定位该资源的信息。URI是一种语义上的抽象概念,可以是绝对的,也可以是相对的,而URL则必须提供足够的信息来定位,所以,是绝对的,而通常说的relative URL,则是针对另一个absolute URL,本质上还是绝对的。
扩展资料
当我们替代web地址的时候,URI和URL中,URI更准确。我们经常使用的URI不是严格技术意义上的URL。例如:你需要的文件在files.hp.com. 这是URI,但不是URL--系统可能会对很多协议和端口都做出正确的反应。
http://blog.csdn.net/koflance是个URL,通过这个网址可以告诉我们用HTTP协议访问,而isbn:0-395-36341-1是RUN,一个国际标准书号,可以唯一确定哪本书。目前HTTP规范已经不使用URL,而是使用URI了,所以URI更具有前景。
参考资料:百度百科——URI
百度百科——URL
1、URI是统一资源标识符,是一个用于标识某一互联网资源名称的字符串。 该种标识允许用户对任何(包括本地和互联网)的资源通过特定的协议进行交互操作。URI由包括确定语法和相关协议的方案所定义。由是三个组成部分:访问资源的命名机制、存放资源的主机名、资源自身的名称,由路径表示。
比如文件的URL,服务器方式用file表示,后面要有主机IP地址、文件的存取路径(即目录)和文件名等信息。有时可以省略目录和文件名,但“/”符号不能省略。
例:file://a:1234/b/c/d.txt代表获取资源使用ftp协议,资源目标是a主机的1234端口的b目录下的c目录下的d.txt。
2、URL是统一资源定位,是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
比如文件的URL,服务器方式用file表示,后面要有主机IP地址、文件的存取路径(即目录)和文件名等信息。有时可以省略目录和文件名,但“/”符号不能省略。
例:file://a:1234/b/c/d.txt代表获取资源使用ftp协议,资源目标是a主机的1234端口的b目录下的c目录下的d.txt。
2、URL是统一资源定位,是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
从JDK1.5开始,
java.net包对统一资源定位符
(uniform resource locator URL)
和统一资源标识符
(uniform resource identifier URI)
作了非常明确的区分。
(1)URI是个纯粹的句法结构,用于指定标识Web资源的字符串的各个不同部分。URL是URI的一个特例,它包含了定位Web资源的足够信息。其他URI,比如
mailto:cay@horstman.com
则不属于定位符,因为根据该标识符无法定位任何资源。
URI 是统一资源标识符,而 URL 是统一资源定位符。因此,笼统地说,每个 URL 都是 URI,但不一定每个 URI 都是 URL。这是因为 URI 还包括一个子类,即统一资源名称 (URN),它命名资源但不指定如何定位资源。上面的 mailto、news 和 isbn URI 都是 URN 的示例。
URI 和 URL 概念上的不同反映在此类和 URL 类的不同中。
此类的实例代表由 RFC 2396 定义的语法意义上的一个 URI 引用。URI 可以是绝对的,也可以是相对的。对 URI 字符串按照一般语法进行解析,不考虑它所指定的方案(如果有)不对主机(如果有)执行查找,也不构造依赖于方案的流处理程序。相等性、哈希计算以及比较都严格地根据实例的字符内容进行定义。换句话说,一个 URI 实例和一个支持语法意义上的、依赖于方案的比较、规范化、解析和相对化计算的结构化字符串差不多。
作为对照,URL 类的实例代表了 URL 的语法组成部分以及访问它描述的资源所需的信息。URL 必须是绝对的,即它必须始终指定一个方案。URL 字符串按照其方案进行解析。通常会为 URL 建立一个流处理程序,实际上无法为未提供处理程序的方案创建一个 URL 实例。相等性和哈希计算依赖于方案和主机的 Internet 地址(如果有);没有定义比较。换句话说,URL 是一个结构化字符串,它支持解析的语法运算以及查找主机和打开到指定资源的连接之类的网络 I/O 操作。
在Java类库中,URI类不包含任何访问资源的方法,它唯一的作用就是解析。
相反的是,URL类可以打开一个到达资源的流。
因此URL类只能作用于那些 Java类库知道该如何处理的模式,
例如http:,https:,ftp:,本地文件系统(file:),和Jar文件(jar:)。
URI—Universal Resource Identifier通用资源标志符
Web上可用的每种资源如HTML文档、图像、视频片段、程序等都是一个来URI来定位的
URI一般由三部组成
①访问资源的命名机制
②存放资源的主机名
③资源自身的名称,由路径表示,着重强调于资源。
URL—Uniform Resource Location统一资源定位符
URL是Internet上用来描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上,特别是著名的Mosaic。
采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。
URL一般由三部组成
①协议(或称为服务方式)
②存有该资源的主机IP地址(有时也包括端口号)
③主机资源的具体地址。如目录和文件名等
应用:
一 、 URI
比如在JDK中sun公司提供的简易HttpServer实现中
public void handle(final HttpExchange exchange)throws Exception
方法中,根据exchange对象可以拿到访问Http请求的URI对象,
ps:
http://127.0.0.1:8080/cmd_helloworld/?name=guowuxin
此时URI uri = exchange.getRequestURI();
通过uri可以拿到连接的各部分内容:
uri.getPath() --------------------> /cmd_helloworld 注意有斜杠
uri.getQuery()----------------------> name=guowuxin
当然如果是post请求,请求内容在请求body当中
二、 URL
上面说了,URL 是一个结构化字符串,它支持解析的语法运算以及查找主机和打开到指定资源的连接之类的网络 I/O 操作。
重要的,URL不仅仅可以进行语法解析运算,还可以查找主机,并且打开指定资源的连接进行网络IO操作。
介绍URL类的两个重要方法
openStream()
打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。
openConnection()
返回一个 URLConnection 对象,它表示到 URL
所引用的远程对象的连接。
URL url = new URL("http://www.baidu.com");
InputStream in = url.openStream();
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()));
上面的程序通过openStream()方法获取访问URL获取的输入流,从而读取响应内容,ps响应内容是过滤掉响应头了的。
openConnection()方法就可以getOutputStream()以及 getInputStream()
可以更灵活的进行request和response
uri 和 url 有什么区别?
1. 结构不同:URI是资源的标识符,由协议(如http、https)、资源类型(如文档、图片)和资源名称组成。URL是用于访问URI的地址,它包含协议、站点的IP地址或主机名、端口号、资源路径等信息。2. 功能不同:URI是资源的标识符,不包含用于访问资源的详细信息。URL是用于访问URI的地址,提供了资源的位置...
请问uri和url有什么区别?
URI更注重资源的唯一标识,其范围更广泛,可以涵盖除了网页以外的其他资源。而URL则更侧重于定位,主要用于标识互联网上的网页或其他资源的具体位置。在实际应用中,我们常常通过URL来访问互联网上的资源,但并非所有的URI都是URL。因此,可以说URL是更具体的指向互联网资源的定位标识,而URI则提供了更广泛...
URI、URL和URN的区别
1. URI(统一资源标识符)是用于标识资源的通用字符串,它可以是资源的名称或位置。2. URL(统一资源定位符)是URI的一个子集,它不仅标识资源,还提供了访问资源的方法。URL如同现实中的住址,提供了具体的位置信息。3. URN(统一资源名称)与URL不同,它仅标识资源的身份,不提供定位信息。URN相当于...
uri和url有什么关系和区别?
URL:Uniform Resource Locator,统一资源定位符;URN:Uniform Resource Name,统一资源名称。URI和URL的关系 URL,URN是URI的子集。什么是URI?URI 是一个用于标识某一互联网资源名称的字符串。该种标识允许用户对任何(包括本地和互联网)的资源通过特定的协议进行交互操作。URI一般由三部分组成:一、主机...
URI和URL什么区别
2. URL和URI在格式上有所区别。URL通常由协议、主机IP地址和资源路径三部分构成,它指明了如何访问资源。而URI由访问资源的命名机制、存放资源的主机名和资源名称(由路径表示)三部分组成,它定义了资源的命名机制。3. 在Java编程语言中,URI可以表示绝对或相对路径,只要遵循URI的语法规则。相对而言,...
URL和URI之间的区别是什么
用于为特定的实体或对象提供持久标识,不依赖于网络协议。在实践中,URL用于网络上的资源定位,而URI提供了一种更通用的方法来标识资源,包括但不限于网络资源。URL通常包括了URI的基本结构,但不包含特定的URN或特定于协议的扩展信息。URL和URI之间的主要区别在于作用范围和标识资源的灵活性。
uri和url的区别
答案:URI和URL存在明显的区别。简单来说,URI是统一资源标识符,而URL是统一资源定位器。它们在描述网络资源和位置的方式上有所不同。详细解释:1. URI:它是一个用于标识网络资源的字符串。无论资源是在哪里托管,都可以通过URI来唯一地标识该资源。URI不仅包括完整的URL,还包括其他类型的标识符,如...
URI和URL的区别
URL是URI的一个子集,统一资源定位符,URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。URL是URI概念的一种实现方式。URI和URL的区别 URI和URL都定义了资源是什么,但URL还定义了该如何访问资源。URL是一种具体的URI,它是URI的一个子集,它不仅唯一标识资源,而且还提供...
网络请求HTTP中使用URL 和 URI 的区别,你不一定了解
强调资源的名称而非位置,以减少失效链接的风险。它像一个书名,直接指向资源,无需关注它的物理位置。结论URI,URL和URN是互联网世界中的三个关键概念。URI是抽象的标识符,URL提供具体的定位,而URN则提供了一个无位置依赖的名称。理解它们的区别,将有助于我们更有效地导航和利用网络资源。
uri和url区别
含义不同,URI是统一资源标识符,用来唯一的标识一个资源。URL是统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。URL的格式一般由下列三部分组成:第一部分是协议或称为服务方式;第二部分是存有该资源的主机IP地址有时也包括端口号;第三部分是主机资源...