URL语法
http://www.baidu.com/index/1.html(协议名,主机名,(端口号),路径名)
方案(协议):不区分大小写。
主机名:标识了能够访问资源的宿主机器,可以用主机名或IP地址表示。
端口号:服务器正在监听的网络端口。下层使用了TCP协议的HTTP默认为80。
用户名和密码:FTP协议就需要输入用户名和密码。
路径:说明了资源位于服务器的什么地方,像一个分级文件系统路径。
参数:是名值对列表,提供了访问资源的所有附加信息,用“;”将其他部分分隔开。如“;type=d”。而且在路径中每段都可以有参数。
查询字符串:用来缩小请求资源类型范围。“?color=blue&size=large”。
片段:引用部分资源或资源的一个片段,“#index”。
HTTP服务器只处理整个对象,而不是对象的片段,客户端不能将片段传送给服务器。浏览器从服务器获得了整个资源后,会根据片段显示需要的部分资源。所以,URL片段仅由客户端使用。
相对URL
相对它所在文档的URL。通过文档的基础URL,推导出其完整的URL。
HTML文档中会包含<BASE>标签定义了基础的URL。用来转换所有相对的URL。如果没有显示指定,会将所属资源的URL作为基础URL。如果没有基础URL,就只是一个损坏了的URL。
自动扩展URL
主机名扩展:比如输入yahoo,会自动构建www.yahoo.com,如果找不到,就放弃之前的扩展。
历史扩展:将以前用户输入过的URL历史存起来,输入时就会自动与历史记录中进行匹配,提供完整的供你选择。
URL编码
URL字符集通常以英语为中心,通常以US-ASCII字符集,加入转义序列后,就可以对任意字符值或数据进行编码,很多协议都可以识别,实现了可移植性和完整性。
URL展望
因为URL只能定位资源所在的位置,如果改变了位置,就找不到。通过一个中间层资源定位符服务器对实际URL进行登记和跟踪。客户端可以向定位符请求一个永久URL,定位符以一个资源作为响应,将客户端重定向到资源当前实际的URL上去。但是URL还有大量的能量,URN还很遥远。