URL和URI
URL
计算机通过统一资源定位符实现资源访问
URL: Uniform Resourse Locator 的缩写。
唯一能识别Internet 上具体的计算机、目录或文件夹位置的命名约定
URL的组成:
1. 协议部分
2. 主机地址
3. 目标资源地址
4. 传递的参数
URL解析:
URI
URI:统一资源标识符,就是在某一规则下能把一个资源独一无二地标识出来,相当于人的身份证号码。
URL是URL的子类,URI属于URL更高层次的抽象,一种字符串文本标准。
HTTP 请求的内容通称为”资源”。”资源“这一概念非常宽泛,它可以是一份文档,一张图片,或所有其他你能够想到的格式。每个资源都由一个 (URI) 来进行标识
一般情况下,资源的名称和位置由同一个 URL(统一资源定位符,它是 URI 的一种)来标识。也有某些特殊情况,资源的名称和位置由不同的 URI 进行标识:例如,待请求的资源希望客户端从另外一个位置访问它。我们可以使用一个特定的首部字段,* Alt-Svc*,来指示这种情况。
URI一般由三部组成
Web上可用的每种资源如HTML文档、图像、视频片段、程序等都是一个来URI来定位的
1. 访问资源的命名机制
2. 存放资源的主机名
3. 资源自身的名称,由路径表示,着重强调于资源。
在Java类库中,URI类不包含任何访问资源的方法,它唯一的作用就是解析。相反的是,URL类可以打开一个到达资源的流。
URL是URI的一种,但也不是所有的URI都是URL。
下面就来看看例子吧,当来也是来自权威的RFC:
* ftp://ftp.is.co.za/rfc/rfc1808.txt (also a URL because of the protocol)
* http://www.ietf.org/rfc/rfc2396.txt (also a URL because of the protocol)
* ldap://[2001:db8::7]/c=GB?objectClass?one (also a URL because of the protocol)
* mailto:[email protected] (also a URL because of the protocol)
* news:comp.infosystems.www.servers.unix (also a URL because of the protocol)
* tel:+1-816-555-1212
* telnet://192.0.2.16:80/ (also a URL because of the protocol)
* urn:oasis:names:specification:docbook:dtd:xml:4.1.2
这些全都是URI, 其中提供了访问机制的就是URL,