• 从输入url地址到刷新页面经历来什么?最简单的方式告诉你


    步骤

    • NDS解析,将域名地址解析为ip地址 (第一步)
      • 浏览器DNS缓存
      • 系统DNS缓存
      • 路由器DNS缓存
      • 网络运营商DNS缓存
      • 递归搜索 如 blog.baidu.com
        • .com 域名下查找DNS解析
        • .baidu
        • blog
        • 出错
    • TCP连接,TCP三次握手 (第二步)
      • 第一次握手,由浏览器发起,告诉服务器我要发送请求了
      • 第二次握手,由服务器发起,告诉浏览器,你赶紧发送
      • 第三次握手,由浏览器发起,告诉服务器,我马上就发了,准备接收了。
    • 发送请求 (第三步)
      • 请求报文:http 协议的通信内容
    • 接收响应 (第四步)
      • 响应报文
    • 渲染页面 (第五步)
      • 遇见html 标记,浏览器调用html解析器解析成token并构建成dom树。
      • 遇见style/link标记,浏览器会调用css解析器,处理css标记并构建cssom树
      • 遇见script标签,会调用script解析器,处理script代码。
      • 将dom树和cssom树合并成渲染树
      • 根据渲染树来计算布局,计算每个节点的几何信息(布局)
      • 将各个节点的颜色绘制到屏幕上(渲染)

    注意 这五个步骤,不一定按顺序执行,可能反复执行,或者执行多次布局和渲染,往往在实际页面中,这些步骤会执行多次。

    • 断开连接(Tcp的四次挥手)(第六步)
      • 第一次挥手: 由浏览器发起,告诉服务器,我东西发完来(请求报文),能准备关闭吧。
      • 第二次挥手:由服务器发起,告诉浏览器,我东西接收完来(请求报文),我准备关闭来,你也准备吧。
      • 第三次挥手:由服务器发起,告诉浏览器,我东西发送完来 (响应报文),你准备关闭吧。
      • 第四次挥手:由浏览器发起,告诉服务器,我东西接收完了,我准备关闭来(响应报文),你也准备吧。
  • 相关阅读:
    maven项目报错:Class path contains multiple SLF4J bindings
    ubuntu18.04 点击启动器实现窗口最小化
    Eclipse lombok get set方法报错
    try-with-resources 让java资源关闭代码更简洁
    yang文件语法格式
    RabbitMQ 交换器、持久化
    RabbitMQ 简介
    systemctl命令配置系统服务
    Karaf基础知识
    Linux shell模拟多线程拷贝
  • 原文地址:https://www.cnblogs.com/yaogengzhu/p/10968082.html
Copyright © 2020-2023  润新知