首页 > Web开发 > 详细

url地址请求的完整过程

时间:2019-08-14 19:48:37      阅读:84      评论:0      收藏:0      [点我收藏+]

从一个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树被修改了就会执行多次布局和渲染,往往实际页面这些步骤都会执行多次

6.断开连接:TCP四次挥手

    第一次挥手:由浏览器发起,发送给服务器,我东西发完了(请求报文),你准备关闭吧

    第二次挥手:由服务器发起,告诉浏览器,我东西接受完了(请求报文),我准备关闭了,你也准备好

 

    第三次挥手:有服务器发起,告诉浏览器,我东西发送完了(响应报文),你准备关吧

    第四次挥手:由浏览器发起,告诉服务器,我东西接受完了,我准备关了,你也准备好吧

  

 

 

 

 

 

 

 

url地址请求的完整过程

原文:https://www.cnblogs.com/BR-Tao/p/11354204.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!