HTTP权威指南--第二章 URL与资源

URL就是因特网资源的标准化名称。URL指向一条电子信息片段,告诉你它们位于何处,以及如何与之交互。

2.1 浏览因特网资源

URL是浏览器寻找信息时所需要的资源位置。他是URI的一个子集,另一个子集是URN(通过名字来识别资源)。URL提供了一种统一的资源命名方式。大多数URL都有同样的:“方案://服务器位置/路径”结构。

URL为应用程序提供了一种访问资源的手段。实际上,很多用户可能都不知道他们的浏览器在获取所请求的资源时所使用的协议和访问方法。

2.2 URL的语法

由于资源可以通过各种不同的方案(如HTTP,FTP、SMTP)来访问,因此URL语法会随方案的不同而有所不同。大多数URL方案的URL语法都建立在由9个部分构成的通用格式上:

<schema>://<user>:<passwod>@<host>:<port>/<path>;<params>?<query>#<frag>

几乎没有哪个URL中包含上述所有组件。URL最重要的3个部分是方案(schema)、主机(host)和路径(path)。

2.2.1 方案-使用什么协议

方案名大小写无关,http和HTTP都可以。方案组件必须以一个字母符号开始,由第一个":"符号将其与URL的其余部分分隔开来。

2.2.2 主机与端口号

主机组件:可以用主机名或ip地址来表示。
端口组件:标识了服务器正在监听的网络端口。

2.2.3 用户名和密码

如果某应用程序使用的URL方案要求输入用户名和密码,比如FTP,但用户没有提供,它通常会插入一个默认的用户名和密码。字符"@“将用户和密码组件与URL的其余组件部分分隔开来。用户名和密码之间用”:"分隔。

2.2.4 路径

URL的路径组件说明了资源位于服务器的什么地方。它通常很像一个分级的文件系统路径。它是服务器定位资源时所需要的信息。

2.2.5 参数

为了向应用程序提供它们所需要的输入参数,以便正确地与服务器进行交互,URL中有一个参数组件。由字符";"将其与URL的其余部分(以及各名值对)分隔开来。它们为应用程序提供了访问资源所需的所有附加信息。如:

ftp://prep.ai.mit.edu/pub/gnu;type=d

HTTP URL路径组件可以分成若干路径段。每段都可以有自己的参数:

http://www.joes-hardware.com/hammers;sale=false/index.html;graphics=true

2.2.6 查询字符串

很多资源,如数据库服务,都是可以通过提问题或进行查询来缩小所请求资源类型范围的。

http://www.joes-hardware.com/inventory-check.cgi?item=12731

“?”右边的内容成为查询组件。按照常规,很多网关都希望查询字符串以一系列“名/值”对的形式出现,名值对之间用"&"分隔:

http://www.joes-hardware.com/inventory-check.cgi?item=12731&color=blue

2.2.7 片段

有些资源类型,比如HTML,除了资源级之外,还可以做进一步划分。为了引用部分资源或资源的一个片段,URL支持使用片段(frag)组件里表示一个资源内部的片段。比如,url可以指向HTML文档中一个特定的图片或小节。

http://www.joes-hardware.com/tools.html#drills

2.3 URL快捷方式

相对URL是在资源内部指定一个资源的便捷缩略方式。很多浏览器支持“自动扩展”。

2.3.1 相对URL

一般用于HTML文档中。
基础URL
作为相对URL参考点使用。
解析相对应用

2.3.2 自动扩展URL

用户不需要输入完整的URL,浏览器会自动扩展。
主机名扩展:在浏览器地址栏中输入Yahoo可能会补充www和.com。
历史扩展:浏览器将用户访问过的地址记住。

2.4 各种令人头痛的字符

URL是可移植的
URL是完整的

2.4.1 URL字符集

2.4.2 编码机制

为了避开安全字符集表示法带来的限制,人们设计了一种编码机制,用来在URL中表示各种不安全的字符。

2.5 方案的世界

http:
https:
mailto:
ftp:
rtsp,trspu:可以通过实时流传输协议解析的音/视频媒体资源的标识符。

2.6 展望未来

URL有缺点:如果资源被移走了,URL也就不再有效了,那时,它就无法对对象进行定位了。URN被研究用来解决这个问题。但从URL转换成URN是一项巨大的工程。标准化工作进展缓慢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值