zoukankan      html  css  js  c++  java
  • 相对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
  • 相关阅读:
    nginx Server names
    ES6--变量的声明及解构赋值
    Android ListView and Tips.
    Eclipse自己定义keystore
    POJ 1129 Channel Allocation(DFS)
    机器学习笔记十三:Ensemble思想(上)
    设计模式——享元模式具体解释
    老猪带你玩转自定义控件三——sai大神带我实现ios 8 时间滚轮控件
    老猪带你玩转android自定义控件二——自定义索引栏listview
    android动手写控件系列——老猪叫你写相机
  • 原文地址:https://www.cnblogs.com/haore147/p/5507793.html
Copyright © 2011-2022 走看看