http 学习 1-2 chapter2-URL与资源

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

  1. URL语法,以及各种URL组件的含义及其所做的工作。
  2. 很多Web客户端都支持额URL快捷方式,包括相对URL和自动扩展URL
  3. URL编码和字符规则
  4. 支持各种因特网信息系统的常见URL方案
  5. URL的未来,包括URN—这种框架可以在对象从一处搬移到另一处时,保持稳定的访问名称。

2.1 浏览因特网资源

         URL是浏览器寻找信息是所需的资源位置。通过URL,人类和应用程序才能找到、使用并共享因特网上大量的数据资源。

         URI是一类更通用的资源标识符,有URL和URN组成。URL通过描述资源的位置来标识资源,RUN通过名字来识别资源,与他们当前所处位置无关。

         HTTP应用程序处理的知识URI的URL子集。URL分一下三部分

  1. URL的第一部分(htp)是URL的方案。方案可以告知Web客户端怎样访问资源
  2. URL的第二部分指的是服务器的位置。这部分告知Web客户端资源位于何处
  3. URL的第三部分是资源路径,路径说明了请求的是服务器上那个特定的本地资源

URL可以通过HTTP之外的其他协议来访问资源。他们可以指向因特网上的任意资源,比如个人的E-mail账户

         Maito: president@whirehouse.gov

或者其他协议。比如通过文件传输协议(File Transfer Protocol ,FTP)才能获取的各种文件。

         ftp://ftp.lots-o-books.com/pub/complete-preice-list.xls

或者从流视频服务器上希在电影:

         rtsp: //www.joes-hardware.com:554/interview/cto_video

URL提供了一种统一的资源命名方式。

         URL为用户及他们的浏览器提供了找到信息所需的所有条件。URL定义了用户所需的特定资源,他位于何处以及如何获取他。。

2.2  URL的语法

         URL提供了一种定位因特网上任意资源的手段,但这些资源师可以通过各种不同的方法来访问的,随着方案不同有所不同。

         大部分URL遵循通用的URL语法,大多数方案的URL语法都建立再这个有9个部分构成的通用格式上。

         <scheme>://<user>:<password>@<host>:<port>/<path>:<param>?<query>#<frag>

         方案、用户、密码、主机、端口、路径、参数、查询、片段

 

         几乎没有哪个URL中包含了所有这些组件,URL最重要的3个部分是方案(scheme),主机(host)和路径(path)。

2.2.1 方案---是用什么协议

         方案实际上是规定如何访问指定资源的主要标识符,他会告诉负责间隙URL的应用程序应该使用什么协议。

         语法: 方案组件必须以一个字母符号开始,由第一个‘:’,符号将其与URL的其余部分分割开来。方案名是大小写无关的。

2.2.2 主机与端口

         URL主机和端口号组件提供了 装载了资源的机器位置和目标资源服务器的具体机器位置。主机组件标识了因特网上能够访问资源的宿主机器,可以用上述主机名或者IP地址来表示主机名。端口组件表示了服务器正在监听的网络端口,对下层使用了TCP协议的HTTP来说,默认端口是80。

2.2.3 用户名和密码

         用户和密码组件,很多服务器都要求输入用户名和密码才会允许用户访问数据。FTP服务器就是这样一个常见的实例。

         ftp;//anonymous:my_password@ftp.prep.ai.mit.edu/pub/gnu

用‘@’将用户和密码组件与URL的其余部分分隔开。2

2.2.4 路径

       URL的路径组件说明了资源位于服务器的什么地方。路径通常很像一个分级的文件系统路径。可以用字符‘/’将HTTP URL的路径组件划分成一些路径短(path segment)。每个路径短都有自己的参数(param)组件

2.2.5 参数

         为了向应用程序提供他们所需的输入参数,以便正确的与服务器进行交互,URL中有一个参数组件。这个组件上就是URL中的名值对列表,由字符‘:’将其余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

         (?)右边的内容是查询组件,URL的查询组件和标识网关资源的URL路径组件一起被发送给网关资源。

         查询组件的格式没什么要求。按照常规,很多网关都希望查询字符串以一系列“名/值”对形式出现,名值对之间用“&”分隔:

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

2.2.7 片段

         为了引用部分资源或资源的一个片段。URL支持使用片段(frag)组件来表示一个资源内部的片段。

         http;//ww.joes-hardware.com/tools.html#drils

HTTP服务器通常处理完整的对象,而不是对象的片段。客户端能不能将片段传送给服务器,浏览器从服务器获得咧真个归元之后,会根据片段来显室你感兴趣的那部分资源。

(感觉就像html中的锚)

2.3 URL快捷方式

         Web客户端可以理解并使用几种URL快捷方式,相对URL是在某资源内部指定一个资源的便捷缩略方式。很多浏览器还支持URL的‘自动扩展’,也就是用户输入URL的一个关键部分,然后由浏览器将其余部分填充起来。

2.3.1 相对URL

         URL有两种方式:绝对的和相对的。绝对URL中包含访问资源所需的全部信息。相对URL是不完整的,要从相对URL中获取访问资源所需的全部信息,就必须相对于另一个被称为其基础(base)的URL进行解析。

         相对URL只是URL的片段或一小部分。处理URL的应用程序要能够在相对和绝对URL之间进行转换。为保持一组资源的便携性提供了一种便捷方式。如果使用的是相对URL,就可以在搬移一组文档的同时,仍然保持连接的有效性,因为相对URL都是相对于新基础进行解释的,这样就可以实现在其他服务器上提供镜像内容之类的功能了。

  1. 1.      基础URL

转换处理的第一步就是找到基础URL,基础URL是作为相对URL的参考点使用的。

l  在资源中显式提供

l  封装资源的基础URL

l  没有基础URL

  1. 2.      解析相对引用

要将相对URL转换为一个绝对URL,下一步要做的就是将相对URL和基础URL划分成组件段。

实际上,这样只是在解析URL,这种做法会将其划分成一个个组件,因此通常会称作分解(decomposing)URL。基础和相对URL划分成组件,就可以应用算法完成转换。

2.3.2 自动扩展URL

         有些浏览器会在用户提交URL之后,或者在用户输入的时候阐释自动扩展URL。有两种方式:

  1. 主机名扩展

举例: 输入baidu,浏览器自动在主机名中插入www.和.com

  1. 历史扩展

将以前用户访问过的URL历史存储起来

2.4 各种令人 的字符

         URL是可移植的(portable)。他要同意的命名因特网上所有的资源,设计URL使其可以通过任意因特网协议安全的传输是 很重要的。

2.4.1 URL字符集

         默认的计算机系统字符集通常都倾向于以英语为中心。从历史上来看,很多计算机应用程序使用的都是US-ASCII字符集。US-ASCII使用7位二级制码来表示英文打字机提供的多数按键和少数用于文本格式和硬件通知的不可答应控制字符。

         URL的设计者就将转义序列集成了进去,通过转义序列,就可以用US-ASCII字符集的有限自己对任意字符值或数据进行编码了,这样就实现了可移植性和完整性。

2.4.2 编码机制

         为了避开安全字符集表示法带来的限制。人们设计了一种编码机制,用来表示URL中各种不安全的字符。通过一种‘转义’方法表示不安全字符的。包含一个百分号(%),后面跟着两个表示字符ASCII码的十六进制数。

2.4.3 字符限制

         在URL总,有几个字符白保留起来,有这特殊的含义。有些字符不在定义的US-ASCII可打印字符集中,还有些字符会与某些因特网网关和协议产生混淆,因此不赞成还是用。

2.4.4 另外一点说明

        

应用程序要按照一定规范工作。客户端应用程序再想其他应用程序发送任意URL之前,最好把所有不安全或首先自付都惊醒转换。只要对所有不安全字符都进行了编码,这个URL就是可在个应用程序之间共享的鬼发型师,野牛无需操心其他应用程序会被字符的任何特殊含义所迷惑了。

2.5 方案的世界

  • Http
  • https (使用了网景的SSL,SSL为HTP链接提供了端到端的加密机制。默认端口:443)
  • mailto
  • ftp
  • rtsp,rtspu
  • file
  • news
  • telnet

2.6  未来展望

URL是一种强有力的工具,他可以用来命名所有的现存对象而且可以很方便的包含已写信格式,URL还提供了一种可以在各种因特网协议间共享的统一命名机制。

         但URL并不完美,他们表示的是实际的地址而不是准确的名字。

         URN 无论对象搬移到什么地方,URN都能为对象提供一个稳定的名称。】、

         永久统一资源定位符(persistent uniform resource locators,PURL)使用URL来实现URN功能的一个例子。

原文地址:https://www.cnblogs.com/pipu-qiao/p/6012794.html