在地址栏输入网址敲回车发生了什么

地址栏输入url后按回车发生了什么?
通常的简单的url像 http://www.baidu.com/ 包含了 通信协议 也就是(http,https),服务器地址(www.baidu.com),端口号(http默认是80,https默认是443端口,https也就是加密的http,一般默认的访问index.html

具体发生了哪些事情

我们在浏览器中输入域名,通过DNS解析出ip地址
(DNS域名系统(Domain Name System缩写DNS,Domain Name被译为域名)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串)
具体解析过程
用户发起请求->操作系统把域名发送给本地区的域名服务器->没有->到Root Server的域名服务器请求解析->返回一个主域名(.com)的服务器地址地址->本地的域名服务器再向主域名服务器发起请求->返回Name Server域名服务器地址(jianshu.com)->接下来的解析就由域名提供商的服务器来解析->Name Server域名服务器查询存储的域名和ip的映射关系表->返回ip地址和一个过期时间,根据这个时间缓存到本地,解析结束。

通过解析出来的ip与服务器进行连接(三次握手)

第一次:客户端向服务器端发送一个连接请求等待服务器确认(第一次握手由浏览器发起,告诉服务器我要发送请求)
第二次:服务器端收到请求并确认在回复一个指令(第二次握手由服务器发起,告诉浏览器我准备接收了,你发送吧;)
第三次:客户端收到服务器的回复并确认返回(第三次握手由浏览器发起,告诉服务器,我马上发送,准备接收;)
通过三次握手建立了客户端与服务器端之间的连接,现在可以请求和发送数据的请求了

发送http请求

服务器返回一个http请求浏览器接受响应

浏览器拿到响应文本后开始渲染
浏览器渲染机制:

1、根据 HTML 解析出 DOM 树;

根据 HTML 的内容,将标签按照结构解析成为 DOM 树 DOM
树解析的过程是一个深度优先遍历。即先构建当前节点的所有子节点,再构建下一个兄弟节点。 在读取 HTML 文档,构建 DOM
树的过程中,若遇到 script 标签,则 DOM 树的构建会暂停,直至脚本执行完毕。*

2、根据 CSS 解析生成 CSS 规则树;

解析 CSS 规则树时 js 执行将暂停,直至 CSS 规则树就绪。 浏览器在 CSS 规则树生成之前不会进行渲染。*

3、结合 DOM 树和 CSS 规则树,生成渲染树

DOM 树和 CSS 规则树全部准备好了以后,浏览器才会开始构建渲染树。 精简 CSS 并可以加快 CSS
规则树的构建,从而加快页面相应速度。*

4、根据渲染树计算每一个节点的信息

布局:通过渲染树中渲染对象的信息,计算出每一个渲染对象的位置和尺寸
回流:在布局完成后,发现了某个部分发生了变化影响了布局,那就需要倒回去重新渲染。*

5、根据计算好的信息绘制页面

绘制阶段,系统会遍历呈现树,并调用呈现器的“paint”方法,将呈现器的内容显示在屏幕上。
重绘:某个元素的背景颜色,文字颜色等,不影响元素周围或内部布局的属性,将只会引起浏览器的重绘。
回流:某个元素的尺寸发生了变化,则需重新计算渲染树,重新渲染。*

6、数据传输完毕断开连接(四次挥手)
第一次挥手:由浏览器发起,发送给服务器,我请求报文发送完了,你准备关闭吧;
第二次挥手:由服务器发起,告诉浏览器,我接收完请求报文,我准备关闭,你也准备吧;
第三次挥手:由服务器发起,告诉浏览器,我响应报文发送完毕,你准备关闭吧;
第四次挥手:由浏览器发起,告诉服务器,我响应报文接收完毕,我准备关闭,你也准备吧;
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值