Http请求 / 输入URL回车后的过程

在浏览器输入URL后回车,经历了哪些过程?  又或者叫 解释下 http请求
一、解析域名,访问DNS,拿到IP地址           
二、建立tcp连接
三、发送一个http请求
四、服务器处理相关请求
五、返回响应的结果
六、关闭tcp连接
七、浏览器解析HTML
八、浏览器进行布局渲染

一、DNS域名解析   DNS一般指域名系统。 域名系统(英文:Domain Name System)

根域名服务器查找过程:

 二、建立tcp连接   

参考我写的 三次握手四次挥手回答 

TCP/IP三次握手,session,token,cookie讲解_一路向阳~负责的男人的博客-CSDN博客

七、浏览器解析HTML

浏览器解析HTML文件,如果遇解析到引入CSS文件的标签,会同时开始解析CSS文件;如果解析JS脚本,会停止解析HTML和CSS,直至JS脚本解析完毕。

当HTML,CSS解析完毕后会生成DOM树,CSS规则树,然后会合成生成渲染树。

八、浏览器进行布局渲染

浏览器根据渲染树进行布局,计算出每个节点在页面中的大小和位置信息。

----------------- 这样答太麻烦了 -----------------------
根据渲染树布局,计算CSS样式,即每个节点在页面中的大小和位置等几何信息。HTML默认是流式布局的,CSS和js会打破这种布局,改变DOM的外观样式以及大小和位置。这时就要提到两个重要概念:replaint和reflow。(重画和重绘)  或者 (重画和重新排版)
replaint:屏幕的一部分重画,不影响整体布局,比如某个CSS的背景色变了,但元素的几何尺寸和位置不变。
reflow: 意味着元件的几何尺寸变了,我们需要重新验证并计算渲染树。是渲染树的一部分或全部发生了变化。这就是Reflow,或是Layout。
所以我们应该尽量减少reflow和replaint,我想这也是为什么现在很少有用table布局的原因之一。
最后浏览器绘制各个节点,将页面展示给用户。
 

补充:七、浏览器解析HTML

JavaScript为什么会阻塞渲染?css会不会阻塞渲染

js在加载之前,浏览器不能识别js具体的操作,js是可以操作DOM的,如果在修改元素属性的同时渲染界面,会出现不可预期的结果,导致渲染混乱,因此浏览器设置了GUI渲染现成和js线程互斥,在js执行的时候,GUI线程会被挂起,等空闲的时候再执行。

dom解析和css解析是两个并行的线程,所以css加载不会阻塞dom的解析

但是render tree是依赖dom tree和cssom tree的,因此,css的加载会阻塞dom的渲染

参考:浏览器中输入url后经历了哪些过程_在路上288的博客-CSDN博客_在浏览器中输入url地址后发生的所有过程icon-default.png?t=N7T8https://blog.csdn.net/m0_57133702/article/details/120576155在浏览器中输入URL后执行的全部过程_TABE_的博客-CSDN博客_输入url后浏览器的执行过程文章目录1.域名解析(DNS解析)2.调用connect()发起TCP的三次握手3.浏览器向web服务器发起HTTP请求4.服务器处理请求5.服务器返回HTTP响应7.断开TCP连接8.浏览器解析HTML9.浏览器布局渲染1.域名解析(DNS解析)可以在浏览器中输入IP地址浏览网站,也可以输入域名查询网站,虽然得出的内容是一样的但是调用的过程不一样。输入IP地址是直接从主机上调用内容,输入域名是通过域名解析服务器指向对应的主机的IP地址,再从主机调用网站的内容。在进行DNS解析时,会经历以下步骤:https://blog.csdn.net/TABE_/article/details/121937955

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值