HTTP权威指南学习笔记——第二章:URL和资源

学习目标:
URL语法,以及各种URL组件的含义及其所做的工作;
很多Web客户端都支持的URL快捷方式,包括相对URL和自动扩展URL;
URL编码和字符规则;
支持各种因特网信息系统的常见URL方案;
URL的未来,包括URN。

  1. URL语法,以及各种URL组件的含义及其所做的工作:
    HTTP规范将更通用的URI作为资源标识符,但实际上使用的只是URI的子集URL。
    不同的协议使用的URL并不相同,但都建立在以下9部分构成的通用格式上:
<scheme>://<user>:<password>@<host>:<port>/<path>;<param>?<query>#frag
	组件		描述
	scheme		访问服务器使用的协议
	user		用户名
	password	密码
	host		主机域名或IP地址
	port		端口号
	path		服务器上资源的本地名
	param		参数。形式为名/值对
	query		查询参数
	frag		一小片或一部分资源的名字

对于HTTP而言,URL的格式为:

<scheme>://<host>:<port>/<path>?<query>#frag

其中,scheme为http或者https(不区分大小写),host必须存在,scheme=http时,port默认为80,scheme=https时,port默认为443,path默认为/,剩下的可能存在。

  1. 很多Web客户端都支持的URL快捷方式,包括相对URL和自动扩展URL:
    相对URL:
    相对URL是缩略形式的URL,是完整URL的片段或一小部分,需要被转换为完整的URL。
    转换处理的第一步是寻找基础URL。有些资源能显示提供,例如HTML文档中的<BASE>标记。如果没有显示指定,就默认基础URL为它所属资源的URL.
    然后使用相对URL继承基础URL,继承的原则是除了<path>之外的所有组件,如果没有就继承基础URL中的。对于<path>组件,如果组件前有./的前缀,就用基础URL中的<path>组件替换,不然就保持原样。
    自动扩展URL:
    自动扩展URL有两种方式:1.主机名扩展。特点是往输入的不完整的URL中插入各种常用参数,努力使URL变得完整合法。2.历史扩展。实现方式是保存下历史访问的URL,当输入新的URL时,与历史记录中的URL做前缀匹配,并提供部分匹配成功的选项供用户选择。

  2. URL编码和字符规则:
    URL是可移植的,需要统一的命名Internet上的所有资源。它会接触到许多不同的协议。因此,URL的命名需要注意避开所有协议中的保留字符。
    因此,对于URL,我们希望仅使用通用的安全字母表中的字符。但在部分情况下,有使用安全字符之外的二进制数据和字符的需要,对于这部分字符,我们希望能转码为安全字符,再进行传输。
    URL保留字符集
    编码机制:对于不安全的字符,使用一个百分号(%)后面跟着表示字符ASCII码的十六进制数。

  3. 支持各种因特网信息系统的常见URL方案:

http 		http://<host>:<port>/<path>?<query>#frag
https 		https://<host>:<port>/<path>?<query>#frag
mailto		mailto:<user>@email.com?<query>
ftp			ftp://<user>:<password>@<host>:<port>/<path>;<param>
rtsp		rtsp://<user>:<password>@<host>:<port>/<path>
rtspu		rtspu://<user>:<password>@<host>:<port>/<path>
file		file://<host>/<path>
news		news:<newsgroup> or news://<news-article-id>	//自身的信息不足以对资源进行定位,需要指定服务器
  1. URL的未来,包括URN:
    URL的缺陷:URL表示的是实际的地址,当资源被移走了,URL就失效了。
    为了弥补这个问题,URN被提出,使用URN(统一资源名)代替URL。大致思想就是在搜索资源的时候引入一个中间层,由中间层对实际的URL进行登记和跟踪。但是从URL转换为URN是一个巨大的工程,而URL已经广为人知,URN也就还不可能替代URL。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值