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的格式一般由下列三部分组成:
- 协议(或称为服务方式);
- 存有该资源所在的服务器的名称或IP地址(包括端口号);
- 主机资源的具体地址。具体地址!!!
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.