浏览器输入网址后发生的事情

前段时间面试时被问到如果在浏览器上输入网址回车后都进行了哪些操作,当时并没有很好的回答出来,因此私下就查看了一些资料,发现主要做了以下这些事情:

第一步就是对网址进行DNS解析。

DNS解析的过程就是寻找在哪台主机上有你需要的资源的过程,我们通常使用机器的域名来访问这台机器,而不是直接使用其IP地址,而将机器的域名转换为IP地址就需要域名查询服务,这个过程称为DNS解析,它主要充当一个翻译的角色,实现网址到IP地址的转换。

第二步就是进行TCP连接

TCP连接也就是我们常说的三次握手,首先客户端向服务器端发送是否可以连接的请求,服务器端接受到请求后确认客户的SYN,并向客户端发送自己的SYN包,客户端接收到服务器发来的包之后向服务器发送确认包从而完成三次握手。详情见前文或百度。

第三步发送HTTP请求 

在完成TCP连接后,接下来做的事情就是客户端向服务器端发送http请求,http请求内容包括:

  • 请求行:方法+地址+http版本
  • 请求头
  • 请求体
  • 举个例子:GET www.baidu.com    HTTP/1.1

第四步服务器处理请求并返回HTTP报文

服务器端接到http请求后在会作出响应,响应内容包括:

  • 响应行:http版本+状态码+状态描述
  • 响应头
  • 响应体

状态码
状态码是由3位数组成,第一个数字定义了响应的类别,且有五种可能取值:

1xx:指示信息–表示请求已接收,继续处理。

2xx:成功–表示请求已被成功接收、理解、接受。

3xx:重定向–要完成请求必须进行更进一步的操作。

4xx:客户端错误–请求有语法错误或请求无法实现。

5xx:服务器端错误–服务器未能实现合法的请求。
平时遇到比较常见的状态码有:200, 204, 301, 302, 304, 400, 401, 403, 404, 422, 500

第五步浏览器解析渲染页面

浏览器在收到HTML,CSS,JS文件后,它将这些信息渲染到客户端页面上

浏览器是一个边解析边渲染的过程。首先浏览器解析HTML文件构建DOM树,然后解析CSS文件构建渲染树,等到渲染树构建完成后,浏览器开始布局渲染树并将其绘制到屏幕上。这个过程比较复杂,涉及到两个概念: reflow(回流)和repain(重绘)。DOM节点中的各个元素都是以盒模型的形式存在,这些都需要浏览器去计算其位置和大小等,这个过程称为relow;当盒模型的位置,大小以及其他属性,如颜色,字体,等确定下来之后,浏览器便开始绘制内容,这个过程称为repain。页面在首次加载时必然会经历reflow和repain。reflow和repain过程是非常消耗性能的,尤其是在移动设备上,它会破坏用户体验,有时会造成页面卡顿。所以我们应该尽可能少的减少reflow和repain。

第六步连接结束关闭连接请求

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值