[SSP]HTTP权威指南——URL
来源:互联网 发布:淘宝九牧王卫浴保真吗 编辑:程序博客网 时间:2024/05/07 15:25
我们每天都会用到URL,下面是URL的标准语法
<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>
对于URL的语法,之前在计算机网络有看过一些资料,所以这里不再赘述,主要说自己感兴趣的
相对URL
有相对URL,那么就肯定有绝对URL啦
绝对URL是完整的,例如:https://www.google.com/
相对URL是不完整的,例如:./hammers.html
使用相对URL的一个好处就是可以保持一组资源(例如一组HTML页面)的可移植性,使用相对URL的时候,可以在搬运一组文档的同时,不会破坏链接的有效性,因为相对URL都是基于基础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 the earth.</P><H2><A NAME=drills></A>Drills</H2><P>Joe's Hardware has a complete line of cordless and corded drills,as well as the latest in plutonium-powered atomic drills, for thosebig around the house jobs.</P> ...</BODY></HTML>
这段代码是www.joes-hardware.com/tools.html的源码,其中hammers便是一个相对URL链接。
访问相对URL需要使用基础URL进行解析
将相对URL转换为绝对URL的第一步就是找到基础URL
基础URL可以来自下面几个地方:
- 资源中显式提供 使用<BASE>标签进行提供
- 封装资源的基础URL,上面的代码中并没有显示指出基础URL,这时候就可以使用它所属资源的URL作为基础URL(后面有例子)
- 没有基础URL 这时你要么是有一个绝对URL要么就是只是一个不完整的或者顺坏的URL
拿到基础URL之后,就是要装相对URL转换为绝对URL啦
转换的过程就是将基础URL和相对URL进行划分操作,划分为URL语法中的各个组件,然后再按照一定的算法进行组装,下面是转换的算法
算法首先将URL进行拆分
第一个分支是根据相对URL的组件来进行划分
第一个分支是没有方案、第二个是所有组件都空(那么直接就是基础URL)、第三个是方案非空(此时URL是绝对的)
在方案为空的情况下:
如果相对URL的所有组件都空,那么走算法左边的路,如果不是非空,那么走右边的,直接去到最后一步
下面以上面的代码例子简单说下这个算法的一个转换过程:
- 路径为 ./hammers.html , 基础URL为www.joes-hardware.com/tools.html
- 方案为空,所以沿着图标的左半边向下处理,继承基础URL方案(HTTP)
- 相对URL有一个组件不为空,直接去到最后一步,继承主机和端口组件
- 将来自相对URL的组件(路径:./hammers.html)和继承来的组件(方案:HTTP 主机:www.joes-hardware.com 端口:80)合并起来,得到新的绝对URL http://www.joes-hardware.com/hammers.html
- [SSP]HTTP权威指南——URL
- [SSP]HTTP权威指南——概述
- [SSP]HTTP权威指南——HTTP报文(上)
- [SSP]HTTP权威指南——HTTP报文(下)
- [SSP]HTTP权威指南——连接管理
- [SSP]HTTP权威指南——Web服务器初探
- 《HTTP 权威指南》读书笔记——URL与资源
- http权威指南(二)——url
- [HTTP权威指南读书笔记]第二章—URL与资源
- 《HTTP权威指南》读书笔记---URL
- 《HTTP权威指南》——HTTP NG
- 《HTTP权威指南》学习笔记(二)—URL和资源
- 1.http权威指南:url与资源
- 读书笔记1——《HTTP权威指南》
- 《HTTP权威指南》——代理
- 《HTTP权威指南》——认证机制
- 《HTTP权威指南》学习笔记-HTTP概述和URL
- HTTP权威指南-基础知识-URL与HTTP报文
- Win7系统IIS7+Tomcat7集成
- 基于C语言的个人所得税计税系统
- VB.Net查询机器所有usb接口的信息
- linux ssh key配置方法
- 不同设备浏览器的userAgent值大全
- [SSP]HTTP权威指南——URL
- 获取 Windows Phone 的 User-Agent 字符串
- POJ 1664 放苹果
- 近期使用Python的一些感想
- ZeroMQ初体验——hello world
- [LeetCode] Two Sum
- 一枚菜鸟谈谈对路由器的认识
- [cocos2d-x]关于update回调,以及继承后子类调用父类的Update处理的问题
- oracle-win7安装oracle 10g时发生”程序异常终止。发生内部错误”的提示