zoukankan      html  css  js  c++  java
  • 13.从url 输入网址到最终页面渲染完成

    从url 输入网址到最终页面渲染完成,发生了什么?

    1.DNS解析:将域名地址解析为IP地址
    先读取:
    -浏览器DNS缓存
    -系统DNS缓存
    -路由器DNS缓存
    -网络运营商DNS缓存
    -递归搜索:blog.baidu.com
    - .com域名下查找DNS解析
    - .baidu域名下查找DNS解析
    - blog域名下查找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四次挥手
    第一次挥手:由浏览器发起,给服务器,我东西发完了(请求报文),你准备关闭吧
    第二次挥手:由服务器发起,告诉浏览器,我东西接收完了(请求报文),我准备关闭了,你也准备关闭吧
    第三次挥手:由服务器发起,告诉浏览器,我东西发完了(响应报文),你准备关闭吧
    第四次挥手:由浏览器发起,告诉服务器,我东西接收完了,我准备关闭了(响应报文),你也准备关闭吧
  • 相关阅读:
    使用ngx_lua构建高并发应用(1)
    nginx+lua项目学习
    学习乱
    if---(switch-case)语句初步学习总结
    数据类型转换
    总结:C#变量,占位符等相关知识
    学习随笔
    开始我的.NET的学习旅程
    Python 网络爬虫 008 (编程) 通过ID索引号遍历目标网页里链接的所有网页
    Python 网络爬虫 007 (编程) 通过网站地图爬取目标站点的所有网页
  • 原文地址:https://www.cnblogs.com/FlyingLiao/p/9879421.html
Copyright © 2011-2022 走看看