1. DNS解析:将域名地址解析为IP地址 (查找路线规则如下)

    • 浏览器DNS缓存
    • 系统DNS缓存
    • 路由器DNS缓存
    • 网络运营商DNS缓存
    • 递归搜索: (例如:limobai.ag.com)
      • .com域名下查找DNS解析
      • .ag域名下查找DNS解析
      • limobai域名下查找DNS解析
      • 出错了
  2. 通过TCP建立连接:TCP三次握手
    • 第一次握手,由浏览器发起,告诉服务器我要发送请求了
    • 第二次握手,由服务器发起,告诉浏览器我准备好接收了,你赶紧发送吧
    • 第三次握手,由浏览器发起,告诉服务器我要发送了,准备接收吧
  3. 浏览器向服务器发起请求
    • 请求报文:http协议的通信内容
  4. 服务器响应请求
    • 响应请求:回传数据报文
  5. 浏览器渲染页面
    • 遇见HTML标记,浏览器调用HTML解析器,解析为token标记并构建dom树
    • 遇见style/link标记,浏览器调用css解析器,处理css标记并构建cssom树
    • 遇见script标记,浏览器调用JavaScript解析器,处理script代码(绑定事件,修改dom树/cssom树)
    • 将dom树和cssom树合并成一颗渲染树
    • 根据渲染树来计算布局,计算每个节点的几何信息(布局)
    • 将各个节点的颜色渲染到屏幕上(渲染)
    • 这几个阶段不一定按照顺序执行,如果dom树和cssom树被修改了,可能会多次执行布局和渲染,往往实际页面中,这些步骤都会执行多次
  6. 浏览器和服务器断开连接:TCP四次挥手
    • 第一次挥手由浏览器发起,发送给服务器,我东西发送完了(请求报文),你准备关闭吧
    • 第二次挥手由服务器发起,发送给浏览器,我东西接收完了(请求报文),我准备关闭了,你也准备吧
    • 第三次挥手由服务器发起,发送给浏览器,我东西发送完了(响应报文),你准备关闭吧
    • 第四次握手由浏览器发起,发送给服务器,我东西接收完了(响应报文),我准备关闭了,你也准备吧

为了便于理解,简单的分为5步

  1. 域名解析,根据域名找到服务器的IP地址
  2. 建立TCP连接,浏览器与服务器通过3次握手后建立连接
  3. 浏览器发起HTTP请求,获取想要的资源
  4. 服务器响应HTTP请求,返回指定的资源
  5. 浏览器渲染页面,解析收到的HTML、Css和JavaScript等文件

从一个URL到页面渲染完成发生了什么?相关推荐

  1. 深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 3

    备注: 因为文章太长,所以将它分为三部分,本文是第三部分. 第一部分:深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 1 第二部分:深入浅出经典面试题:从浏览器中输入URL ...

  2. 从输入 url 到页面展示到底发生了什么

    从输入 url 到页面展示到底发生了什么 查找缓存 DNS 域名解析 tcp 三次握手 tcp 四次挥手 html 渲染 查找缓存 检查浏览器缓存中有没有这个域名对应的解析过 ip 地址,如果缓存中有 ...

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

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

  4. 从输入URL到页面呈现中间发生了什么?

    当我们在浏览器的地址栏中输入URL到页面渲染,中间具体发生了什么? 地址栏输入URL DNS解析 建立HTTP连接(3次握手) 浏览器渲染页面 断开连接 地址栏输入URL并解析 URL(Uniform ...

  5. 一文通透从输入URL到页面渲染的全过程----高频面试

    一文通透从输入URL到页面渲染的全过程----高频面试 喜欢大海 喜欢夕阳 写下便是永恒 文章目录 一文通透从输入URL到页面渲染的全过程----高频面试 重温 进程与线程 什么是进程 什么是线程 进 ...

  6. url上接收到 el表达式 不渲染_一文摸透从输入URL到页面渲染的过程

    一文摸透从输入URL到页面渲染的过程 从输入URL到页面渲染需要Chrome浏览器的多个进程配合,所以我们先来谈谈现阶段Chrome浏览器的多进程架构. 一.Chrome架构 目前Chrome采用的是 ...

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

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

  8. 浏览器从输入URL到页面渲染过程 —— 浏览器的进程与线程

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

  9. 浏览器 重定向次数限制_在浏览器输入URL到页面渲染的整个流程是如何的?都有哪些步骤?...

    问题:输入 URL 到页面渲染的整个流程 DNS解析 TCP握手 TLS握手 浏览器开始解析文件 构建 DOM 树.构建 CSSOM 树.解析JS 生成 Render 树 调用 GPU 绘制,合成图层 ...

最新文章

  1. [python]逆水行舟不进则退(1)
  2. argparse库 学习记录
  3. tf.nn.sparse_softmax_cross_entropy_with_logits()与tf.nn.softmax_cross_entropy_with_logits的差别
  4. python开发工具与pycharm_python开发工具pycharm快速入门
  5. DM365 u-boot启动分析
  6. 用shell查看关键数据
  7. 如何在 Mac 上创建自动填充的智能文件夹?
  8. oracle 基本dos命令,Oracle 常用 Dos命令
  9. 中文近义词工具包,Synonyms 发布新版本 v3.16,支持词汇表扩大至 40w+
  10. 链接脚本(Linker Script)应用实例(一)使用copy table将函数载入到RAM中运行
  11. 用c语言输出一个菱形
  12. 【VUE/H5】H5调起数字键盘的坑,及手写移动端键盘代码
  13. 图像处理学习 灰度图像与二值图像
  14. [递推] 51Nod1383 整数分解为2的幂
  15. ubuntu写yacc
  16. Rust学习第九天——控制测试运行
  17. 半音阶口琴膜片翘起来怎么处理?
  18. 【量化交易】94篇论文分析股市预测的深度学习技术
  19. 汇编语言:简单图形界面的绘制教程
  20. python是什么?python又可以用来干什么?(详细讲解来啦)

热门文章

  1. 跨团队协作:提高团队生产力的 7 种策略
  2. php试题答案是非题,PHP试题带答案
  3. STM32 CAN总线工作原理
  4. 率土之滨鸿蒙之初,实用主义大菜刀攻略:从赛季初到赛季末
  5. PDFpenPro 10 for Mac(pdf编辑软件) v10.2.1破解版
  6. python+dlib+opencv实现图像人物换脸
  7. Golang - [Iris] 日志写入与日志分割
  8. Adobe application manager丢失或损坏解决方法
  9. 高蛋白过敏我们该如何缓解?教你几招远离过敏吃喝无忌
  10. 【解决】移动用户如何使用APP自行取消全国亲情网业务