URL与资源
来源:互联网 发布:软件行业税收优惠 编辑:程序博客网 时间:2024/05/22 17:06
转自 : http://blog.csdn.net/nothi/article/details/11182421
转自:http://blog.csdn.net/ergouge/article/details/8185219/
缩减版:
就以下面这个URL为例,介绍下普通URL的各部分组成
http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name
1.协议部分:该URL的协议部分为“http:”,这代表网页使用的是HTTP协议。在Internet中可以使用多种协议,如HTTP,FTP等等本例中使用的是HTTP协议。在"HTTP"后面的“//”为分隔符
2.域名部分:该URL的域名部分为“www.aspxfans.com”。一个URL中,也可以使用IP地址作为域名使用
3.端口部分:跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口
4.虚拟目录部分:从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分。本例中的虚拟目录是“/news/”
5.文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“index.asp”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名
6.参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。
7.锚部分:从“#”开始到最后,都是锚部分。本例中的锚部分是“name”。锚部分也不是一个URL必须的部分
完整版:
这是看 Http权威指南 的笔记
URL与资源
浏览因特网资源
URL(Uniform Resource Locator)统一资源定位符 是因特网上定位资源的主要方法,它的格式一般为
方案://服务器位置/路径, 以下是URL的一个例子
URL的语法
下面我们来详细介绍一下URL的语法
大多数的URL方案的避URL语法都建立在由9部分构成的通用格式化上
<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>
以下各种组件进行总结
它们相互以及与路径的其余部分之间用分号(;)分隔无查询一些方案会用这个组件传递参数以激活应用程序.查询组件的内容没有通用格式.化用符号"?"将其与URL的其余部分分隔开来无片段一小片或一部分资源的名字.引用对象时,不会将frag字段传送给服务器这个字段是在客户端内部使用的.通过字符"#"将其与URL其余部分分隔开来无
接下来讲分别讲主要的组件
方案
方案实际上规定了如何访问指定资源的主要标识符,它会告诉程序如何解析URL
方案组件必需以一个字母符号开始,由第一个":"将其和URL的其它部分分隔, 方案是大小写无关的
主机和端口
主机和端口用以识别互联网上的主机,可以通过主机名,也可以通过IP地址指向服务器
用户名和密码
用户名和密码用":"分隔符
路径
路径通常是像一个分级的文件系统路径. 可以用字符"/"将HTTP URL的路径组件划分成一些路径段(path segment),每个路径段都有自己的参数组件
参数
URL的快捷方式
相对URL
URL有两种方式:绝对的和相对的. 上文出现的都是绝对的URL. 绝对URL中包含有访问资源的所需的全部信息
同时,相对论URL是不完整的,要从相对URL中获取讓访问资源所需的全部信息,就发源相对于另一个,被称为其基础(base)的URL进行解析
以下是书上的一个例子
- <HTML>
- <HEAD><TITLE>Joe's Tools</TITLE></HEAD>
- <BODY>
- <H1>Tools Page</H1>
- <H2>Hammers</H2>
- <p>Joe's Hardware online has the largest selection of
- <A HREF="./hammers.html">
- hammers
- </A> on earth
- </p>
- </BODY>
- </HTML>
其中,基础URL为:http://www.joes-hardware.com/tools.html
资源./hammers.html即相对的URL,它被解析为:基础URL+相对URL(后面有讲具体的解析规则),
即http://www.joes-hardware.com/hammers.html
基础URL
转换处理的第一步就是找到基础URL. 基础URL是相对论URL的参考点. 基础URL可以来自以下几个不同的地方
- 在资源中显式提供
有些资源会显式指定基础课URL, 如, html中可以用标记<BASE>, 通过它来转换那个HTML文档中的所有相对URL
- 封闭资源的基础URL
如果在一个没有显式指定基础URL的资源中发现一个相对URL, 可以将它所属的资源的URL作为基础
- 没有基础URL
如果没有基础的URL, 这通常意味着你有一个绝对的URL,但有时可能只是一个不完整或损坏的URL
解析相对引用
要将一个相对URL转换为绝对URL,要将其先划分为一个个组件. 把URL划分为组件后,就可以用以下的算法完成转换了(图处来自书本)
我们对上面的./hammers.html使用图中描述的算法
- 路径为./hammers.html, 基础URL为http://www.joes-hardware.com/tools.html
- 方案(scheme)为空,沿着图左边处理,继承基础URL方案
- 至少一个组件非空,一直处理到底端,继承主机和端口组件
- 将来自相对URL(路径:./harmers.html)的组件与继承的组件合并,得到新的绝对URL:http://ww.joes-hardware.com/hammers.html
令人头疼的字符
URL字符集
http的字符集为US-ASCII,其它字符用转义序列表示
编码机制
为了避开安全字符集表示法带来的限制,人们设计了这样一种编码机制来转义一些不安全的字符
具体做法是:一个百分号(%)+两个表示字符ASCII码的十六进制
以下列出几个例子
字符限制
在URL中有几个字符被保留, 在URL中也对其进行编码, 以下是保留及受限字符
字符保留/受限%保留作为编码字符的转义标志/保留作为路径组件中的分隔字符.保留在路径组件中使用..保留在路径组件中使用#保留作为分段定界使用?保留作为查询字符串定界使用;保留作为参数定界符使用:保留作为方案, 用户/号令, 以及主机/端口组件的定界符使用$,+保留@ & =在一些方案上下文特殊的含义,保留{} | ^ ~ [] '由于各种传输Agent代理,各种网关的不安全处理,使用受限< > "不安全0x00-0x1f,0x7f受限,这些十六进制范围内的字符都在ASCII字符集的不可打印区间内>0x7f受限,十六进制值在此范围内的字符都不在ASCII字符集的7比特范围内转载请注明出处,请忽用于任何商业用途--nothi
- URL与资源
- 【HTTP】URL与资源
- URL与资源
- URL与资源
- URL与资源
- URL与资源
- URL与资源
- 第二章 URL与资源
- HTTP协议(二)URL与资源
- 第2章 URL与资源
- HTTP学习笔记:URL与资源
- URL与资源,报文结构详解
- 1.http权威指南:url与资源
- 资源URL。
- 《HTTP 权威指南》读书笔记——URL与资源
- [HTTP权威指南读书笔记]第二章—URL与资源
- 《HTTP权威指南》读书笔记(2)-URL与资源
- HTTP学习笔记——URL与资源
- goaccess安装使用
- Calling LoadLibraryEx on ISAPI filter failed
- 用百度API在地图上画出一只恐龙
- Java修饰符 abstract,static,final 的区别详解
- 使用js代码完成页面文本防复制功能
- URL与资源
- camera 大全
- 关于ALAssetsLibrary的学习
- LeetCode—187.Repeated DNA Sequences
- 属性字符串(富文本)的使用
- linux下安装php+apache+mysql集成环境
- 菜鸟学习Spring——SpringMVC注解版在服务器端获取Json字符串并解析
- swagger-ui教程-构建api接口文档工具
- 高效加载大图