2 URL与资源

1 浏览因特网资源

常见URL格式

方案://服务器位置/路径

URL怎样与浏览器、客户端、服务器以及服务器文件系统中的位置进行关联

2 URL语法

通用格式(针对大多数URL方案)

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

2.1 方案——使用什么协议

特点:大小写无关
分类:http、ftp等

2.2 主机与端口

2.3 用户名和密码

特点

  • 用户名和密码用:隔开;
  • <用户名>:<密码>和URL其它组件用@隔开;
  • 如果使用的方案要求用户名和密码,而用户没有提供,通常会插入一个默认的用户名和密码。

举例

2.4 路径

2.5 参数(键值对列表)

作用: 向应用程序提供他们所需的输入参数,以便正确地狱服务器进行交互。
特点: 通过“;”和URL其他部分以及各名值对分隔开

举例

2.6 查询字符串

作用:通过提问题或进行查询缩小所请求资源的范围。
特点

  • 通过和其他部分分隔;
  • 以一系列名值对的形式出现,名值对之间用“&”分隔。

举例

2.7 片段

作用:表示引用资源内部的片段。
特点:HTTP服务器通常只处理整个对象,而不是对象的片段,客户端不能将片段传送给服务器。浏览器从服务器获得了整个资源之后,会根据片段显示部分资源。

3 URL快捷方式

3.1 相对URL

是什么:相对URL为保持一组资源的便携性提供的一种便捷方式。
优点:搬移一组文档的同时仍然保持链接的有效性。

相对URL转换为绝对URL的过程

第一步:找到基础URL

  • 在资源中显式提供(比如HTML的标签);
  • 将所属资源的URL作为基础URL;
  • 根本没有基础URL。

第二步:相对URL转换为绝对URL

举例

  1. 路径为./hammers.html,基础URL为http://www.joes-hardware.com/tools.html
  2. 方案为空,沿着图表的左半边向下处理,继承基础URL方案(HTTP);
  3. 至少一个组件非空,一直处理到低端,继承主机和端口组件;
  4. 将来自相对URL的组件与我们继承来的组件合并起来,得到新的绝对URL.

3.2 自动扩展URL(浏览器)

  • 主机名扩展
  • 历史扩展

4 各种令人头疼的字符

可移植性:可以通过任何通讯协议安全传输
完整性:能够将不安全的字符编码为安全字符

4.1 URL字符集

US-ASCLL

是什么:使用7位二进制码来表示英文打字机提供的大多数按键和少数用于文本格式和硬件通知的不可打印控制字符。
缺陷:不支持各种欧洲语言或全世界数十亿人使用的数百种非罗马语言的辩题字符。无法表示二进制数据。
解决办法:转义序列

4.2 编码机制