HTTP权威指南Ch2-URL和资源 笔记
第二章 URL与资源
2.1 浏览因特网资源
URL是通过描述资源的位置来标识资源的,而URN是通过名字来识别资源的,与他们当前所处位置无关
2.2 URL的语法
大多数URL方案的URL语法都建立在9部分构成的通用格式上。<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>
方案告诉负责解析URL的应用程序该使用什么协议,方案名是大小写无关的。
主机和端口,用主机名或IP地址来表示主机名,很多协议有默认的端口。
用户名和密码,用户名和密码间由字符“:”分隔,该组件与URL其他部分用“@”分隔。有时应用程序会插入缺省的值
路径很像一个分级的文件系统路径,每个路径都有自己的参数组件
参数组件式URL中的名值对列表,由前置字符“;”将其与URL的其余部分分隔,它们为应用程序提供了访问资源所需的所有附加信息。比如像FTP协议有二进制和文本形式两种传输模式,如/ham;sale=f/index.html;type=d
查询字符串以一系列“名/值“对的形式出现,名值对之间用字符”&“分隔,如...sale/?item=777&color=red
片段,有些资源类型,比如HTML,除资源级之外,还可以做进一步的划分,片段组件可以用来表示一个资源内部的片段。比如一个带有章节的大型文本文档,指定资源中的章节。HTTP服务器通常只处理整个对象,而不是对象的片段,客户端不能将片段传送给服务器,浏览器从服务器获得了整个资源后,会根据片段来显示对应的部分资源
2.3 URL的快捷方式
解析相对URL的第一步是找到基础URL,然后利用解析算法转换成绝对URL,算法分别检测相对URL,判断是否继承方案,用户、密码、主机、端口,路径,参数,查询
自动扩展URL,一些浏览器会有主机名扩展和历史扩展
2.4 各种令人头疼的字符
考虑到对URL字符集的完整性需求,URL的设计者将转义序列集成进来。通过转义序列,可以用US-ASCII字符集的有限子集对任意字符值或数据进行编码,实现了可移植性和完整性。用%后跟相应字符的16进制数表示。
字符限制,URL中,有一些字符被保留起来,有着特殊含义,将其用于保留用途之外的场合时,要在URL中对其进行转义编码
2.5 方案的世界
常见的方案格式有:http(80),https(443),mailto(RFC822),ftp(21),rtsp、rtspu(Real Time Streaming Protocol),file(若省略主机名,就默认为在使用URL的本地主机),news(RFC1036,news URL自身包含的信息不足以对资源进行定位,需要配置指定的NNTP服务器,被称为与位置无关),telnet(用于访问交互式业务)
2.6 未来展望
PURL(persistent uniform resource locators)使用URL来实现URN功能的一个例子,其基本思想是在搜索资源的过程中引入另一个中间层,通过一个中间资源定位符服务器对资源的实际URL进行登记和跟踪。URL的一些限制并不是Web开发社区所面临的最紧迫的问题
网友评论