URI URL的联系与区别   

URL

URL:(全称:Uniform Resource Locator)统一资源定位符。

它是一种表示,是互联网上标准资源的地址。  通过URL对互联网上的资源进行访问。

URL 的常见定义格式为:带方括号[]的为可选项

scheme://host[:port#]/path/…/[;url-params][?query-string][#anchor]

scheme //协议 有我们很熟悉的http、https、ftp以及著名的ed2k,迅雷的thunder等。
host   //HTTP服务器的IP地址或者域名
port#  //HTTP服务器的默认端口是80,这种情况下端口号可以省略。如果使用了别的端口,必须指明,
例如tomcat的默认端口是8080  http://localhost:8080/
path   //访问资源的路径
url-params  //所带参数 
query-string    //发送给http服务器的数据
anchor //锚点定位

URL的格式一般由下列三部分组成:

  1. 协议(或称为服务方式);
  2. 存有该资源所在的服务器的名称或IP地址(包括端口号);
  3. 主机资源的具体地址。具体地址!!!
URL:  http://127.0.0.1:8080/webProject/index.html

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

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

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

URI

URI:(全称:Uniform Resource Identifier)统一资源标识符,它是一个字符串用来标示抽象或物理资源。

URL,URI关系

URI 属于 URL 更高层次的抽象,一种字符串文本标准。就是说,URI 属于父类,而 URL 属于 URI 的子类。uri是理论或者说规范,url是按照规范的具体实现(从定义上其实更类似于接口与对应实现类的概念)

参考:URL与URI,有联系有区别? - 知乎 (zhihu.com)

URI、URL和URN的区别 - 知乎 (zhihu.com)这个讲的最好最通俗易懂!!!

 

URI 在于I(Identifier)是统一资源标示符,可以唯一标识一个资源。

URL在于Locater,一般来说(URL)统一资源定位符,可以提供找到该资源的路径,比如

http://www.zhihu.com/question/21950864

,但URL又是URI,因为它可以标识一个资源,所以URL又是URI的子集。

举个是个URI但不是URL的例子:urn:isbn:0-486-27557-4,这个是一本书的isbn,可以唯一标识这本书,更确切说这个是URN。

总的来说,locators are also identifiers, so every URL is also a URI, but there are URIs which are not URLs.