• 相对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
  • 相关阅读:
    [转]CROSS APPLY 和outer apply 的区别
    第一次WCF部署成功心得(UP+证书)
    .NET 简单实现广播
    【转】 c#注册全局快捷键
    软件人才成长链
    [转]关于VS2005智能设备中无法找到PInvoke DLL问题
    [转]我倡导无政府主义编程—Fred George访谈录
    运行Windows Mobile程序时报错:无法找到 PInvoke DLL SQLite.Interop.065.DLL
    系统分析师考试说明
    [转]Oracle 字符集的查看和修改
  • 原文地址:https://www.cnblogs.com/haore147/p/5507793.html
Copyright © 2020-2023  润新知