相对URL拼接为绝对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 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划分为组件后,就可以用以下的算法完成转换了(图处来自《HTTP权威指南》)

 

我们对上面的./hammers.html使用图中描述的算法

  1. 路径为./hammers.html, 基础URL为http://www.joes-hardware.com/tools.html
  2. 方案(scheme)为空,沿着图左边处理,继承基础URL方案
  3. 至少一个组件非空,一直处理到底端,继承主机和端口组件
  4. 将来自相对URL(路径:./harmers.html)的组件与继承的组件合并,得到新的绝对URL:http://ww.joes-hardware.com/hammers.html
本文转自二郎三郎博客园博客,原文链接:http://www.cnblogs.com/haore147/p/5507793.html,如需转载请自行联系原作者
相关文章
|
数据库 Python
Python实战:通过内置函数urljoin优雅的实现url链接的拼接
Python实战:通过内置函数urljoin优雅的实现url链接的拼接
269 0
.NET中将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),并使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA
.NET中将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),并使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA
333 0
|
数据采集 Python
Python爬虫:urlencode带参url的拼接
Python爬虫:urlencode带参url的拼接
299 0
attachment绑相对url
控件的实现最后call的是window.open,所以绑相对url也能work,这是window.open内部的实现保证了。
attachment绑相对url
|
安全 前端开发 JavaScript
html中的链接不添加http(协议相对 URL)
在HTML中,如果想引用图片,通常会使用类似以下的代码: &lt;img src=&quot;https://www.fgba.net/static/image/common/logo.png&quot; alt=&quot;富贵吧&quot; /&gt; 如果将以上代码改成这样,你觉得图片还能正常显示吗? &lt;img src=&quot;//www.fgba.net/static/image/common/logo.png&quot; alt=&quot;富贵吧&quot; /&gt; 实际上这是可行的,省略URL的协议声明,浏览器照样可以正常引用相应的资源,这项解决方案称为protocol-relative URL,暂且可译作 协议相对 URL。那这么写有什么好处呢?
371 0
html中的链接不添加http(协议相对 URL)
|
存储 安全 数据库
arcgis 绝对、相对、UNC 和 URL
arcgis 绝对、相对、UNC 和 URL 您每天都通过路径浏览至数据和工具箱。在共享数据和工具之前,您对此可能没有做太多考虑,其实您也无需考虑。本部分将详细讨论以下方面内容:路径、定义不同类型的路径以及 ArcGIS 对路径的管理方式。
1905 0
|
8天前
|
前端开发 JavaScript
前端JS截取url上的参数
文章介绍了两种前端JS获取URL参数的方法:手动截取封装和使用URLSearchParams。
21 0
|
2月前
|
开发框架 前端开发 .NET
Asp.net Webapi 的 Post 方法不能把参数加到 URL 中?试试这样写
Asp.net Webapi 的 Post 方法不能把参数加到 URL 中?试试这样写
|
2月前
|
Java
JAVA 获取 URL 指定参数的值
JAVA 获取 URL 指定参数的值
38 0