点击页面中的链接,浏览器会根据源码中相对URL路径作不同的处理:

(1)有协议名称,但没有域名信息

  对于这种形式的URL,它的协议,路径,查询字符串和片段ID都以它自身为准,但域名信息的部分,以引用它的那个页面地址为准。

(2)没有协议名,但有域名信息

  协议名称由原发起页面确定,而所有接下来的URL信息都取自这个相对URL,构成完整的URL。

(3)没有协议名,没有域名信息,但有路径

  如果网页中明确给出了base标签, 那么得到的URL是 base URL 路径。

  如果没有给出base标签,这种情况下分为两种结果:

  a) 如果相对URL的开头是斜杠(根目录),则忽略当前页面自身的URL信息,直接把相对路径拼在当前页面的域名后面。

  b) 如果相对URL的开头不是斜杠,则将当前页面URL的最后一个/之后的内容去掉,将剩余的内容返回作为base URL,相对路径拼接在其后。

(4)没有协议名,没有域名信息,没有路径,但有查询字符串

  协议,域名,路径信息全部原封不动的从原引用URL复制过来,查询字符串和片段ID则来自相对URL。

(5)只有fragment

  只替换fragment部分,其他所有信息从原引用URL复制过来。

<base>标签

  浏览器会从当前页面的 UR中提取相应的部分来填写相对 URL 中的空白。使用 <base> 标签可以改变这一点。浏览器随后将不再使用当前文档的 URL,而使用指定的基本 URL 来解析所有的相对 URL。这其中包括 <a>、<img>、<link>、<form> 标签中的 URL。

  浏览器也会在当前页面URL的基础上对..和.进行相应调整,在地址栏生成新的请求URL。

浏览器如何生成URL相关推荐

  1. 浏览器从输入URL到页面渲染过程 ——页面渲染流程

    之前我有总结过一篇经典面试题:浏览器从输入URL到页面渲染过程 ,接下里我将对某些知识点进行更细致的解析. 浏览器从输入URL到页面渲染过程 系列文章: (一):浏览器从输入URL到页面渲染过程 -- ...

  2. java 重定向到某个页面并弹出消息_前端面试100问之浏览器从输入URL到页面展示发生了什么...

    点击蓝字,关注我们 『浏览器从输入URL到页面渲染发生了什么』作为一个经典题目,在前端面试中高频出现,很多大厂的面试都会从这个面试题出发,考察候选人对知识的掌握程度,这其中涉及到了网络.操作系统.We ...

  3. java 不生成文件下载_java – 浏览器不生成文件下载对话框

    我目前的情况是JavaScript客户端有一堆数据,我POST到服务器处理/转换成不同的格式(例如CSV),现在我想将转换后的数据从服务器发送到客户端. 我设置了响应的内容类型,但浏览器不生成文件对话 ...

  4. 前端学习之浏览器从输入URL到页面加载的全过程

    浏览器从输入URL到页面加载的全过程 从输入URL到页面加载的主干流程如下: 1.浏览器的地址栏输入URL并按下回车. 2.浏览器查找当前URL的DNS缓存记录. 3.DNS解析URL对应的IP. 4 ...

  5. 在浏览器中输入URL并回车后都发生了什么?

    1.解析URL ________________________________________________________________________ 关于URL: URL(Universa ...

  6. 从浏览器地址栏输入url到请求返回发生了什么(深问)

    问题: 从浏览器地址栏输入url到请求返回发生了什么 你一看这种烂掉牙的问题,小case,但996面试大佬由此延展的问题已经远远超越了这个问题本身了,不信你就接着看. 我回答了首先会进行 url 解析 ...

  7. 「高频面试题」浏览器从输入url到页面展示中间发生了什么

    作者:Hanpeng_Chen 公众号:前端极客技术 文章首发个人博客:「高频面试题」浏览器从输入url到页面展示中间发生了什么 | 代码视界 "在浏览器中,从输入URL到页面展示,中间发生 ...

  8. html5 占位图片,placeholder.js-可在浏览器端生成占位图片的js插件

    placeholder.js是一款轻量级的可在浏览器端生成占位图片的javascript库插件.该图片占位插件大小小于1kb,不依赖于任何js框架,并提供完善的配置参数和简单的方法.它的特点还有: 不 ...

  9. 【计算机网络漫游】浏览器输入一个URL后发生了什么

    浏览器输入一个URL之后发生了什么?这个问题一直是一个非常经典的问题,透过这个问题,我们可以从数据包的角度,自顶向下 (也可以自底向上) 地理解计算机网络各层发生的事情,同时也是一个面试的热点问题.但 ...

最新文章

  1. 艺龙十万级服务器监控系统开发的架构和心得
  2. 推荐Datawhale整理的秋招求职攻略
  3. IIs管理服务一直启动失败的原因之一
  4. 九个月可以做成什么事?
  5. SAP Fiori Elements edit按钮的实现细节
  6. Docker 方式安装 zipkin (linux 、阿里云ECS上安装)
  7. Android 编程下 Touch 事件的分发和消费机制
  8. [Android5 系列—] 1. 构建一个简单的用户界面
  9. 【eevee.cc】文章归档
  10. 8款最佳编程字体,你值得拥有!
  11. cmd长ping记录日志和时间_ping记录带时间戳
  12. Qt报错:C:\Program Files (x86)\SogouInput\Components\
  13. 如何用matlab做拉普拉斯变换,利用MATLAB实现拉普拉斯变换和其逆变换
  14. conda python源配置
  15. 普元EOS生成WebService时使用自定义实体映射属性
  16. 数据库设计原则、表字段命名规则、索引调优建立规则
  17. Tcp滑动窗口协议简介
  18. matlab对比度拉伸,[转载][数字图像处理学习]分段线性变换函数——对比度拉伸...
  19. 子游戏下载一半重新下载
  20. 跳转打开多个标签导致浏览器崩溃问题

热门文章

  1. 2018年工业机器人销量排位_长安-2018年11月汽车销量 细分销量
  2. 降级安装_如何升级iOS13测试版,还有降级
  3. Android项目开发填坑记-Fragment的onAttach
  4. BZOJ 3436: 小K的农场( 差分约束 )
  5. 7. SVM松弛变量
  6. 栈的链式存储及其基本运算
  7. windows调用python_如何在Windows操作系统中从R调用Python?
  8. MATLAB读写mat文件
  9. AUTOSAR从入门到精通100讲(十八)-AUTOSAR操作系统OS
  10. excel实战应用案例100讲(十二)-用Excel做一个自动抽奖器