前端必会知识点-浏览器真的事很多

哒哒哒~输入url
image.png

###一、DNS解析

客户端:用户输入url回车了,瞅瞅又让俺去哪?我脑子里不记得之前访问过;
客户端:hosts 你知道那货想去哪吗?
Hosts: 俺也不知道,去找DNS吧,俺有就给你了;
客户端:好勒,我去找DNS老大哥;

  1. 浏览器收到用户输入的域名地址后,会先查询浏览器缓存, 浏览器会缓存之前拿到的DNS 2-30分钟时间
  2. 如果没有则去找本地hosts文件,检查在文件中是否有响应的域名或者IP对应关系,
    (hosts路径:C:\Windows\System32\drivers\etc)
  3. 如果有则发送请求至指定的IP地址,没有则去找本地DNS服务器

客户端:路由先生,你还记得不?
路由器:我脑子也不行了,不太记事,去看看本地服务器有不?

本地服务器:运营商(电信)的服务器,
但是如果电脑与运营商之间有无线或者有线路由的话,路由器也会缓存DNS,所以会先问路由先生
当路由缓存中也没有时,则会去查询本地服务器


本地DNS服务器: 我也不记得,我去找找老根、老顶、老极
本地DNS服务器: 唉~每个依次找了个遍:总算拿到目标域名的IP,好难呀,老弟,给你要的IP"
客户端:谢谢大哥~

递归查询:从根域名服务器,再到顶级域名服务器、再到极限域名服务器,需要依次查询
如果本地DNS有了根服务器的缓存,则不会去找根服务器
获取到对应的IP后,则想IP地址定位的HTTP服务器发起TCP链接

###二、建立TCP链接
客户端: 服务器大哥,在吗?
服务器: 老弟,我在呢,
客户端:好勒,
image.png

客户端发送一个带有SYN标志的数据包给服务端,服务端收到后,回传一个SYN/ACK的认证信息,最后客户端再次回传一个带ACK标志的数据包

SYN:建立联机 ;
Sequence number : 随机的顺序号码
客户端发送SYN = 1 ,随机生成Seq number= 1234567的数据包给服务器,服务端有SYN = 1则知道客户端要建立连接

ACK:确认联机信息
服务器收到请求后,向客户端发送Ack number = (客户端的Seq + 1), SYN = 1, ACK = 1; 随机产生的Seq = 789110的包

客户端收到ACK, 检测是否正确(ack number = 第一次发送的Seq number+ 1),若正确,客户端会再发送ack number = (服务端的Seq + 1),ack = 1; 服务端收到后确认seq值与ack = 1 则建立成功

###三、发送HTTP请求
与服务器建立连接之后,就可以向服务器发起请求了
image.png

###四、服务器处理请求
服务器收到请求后,会开始解析请求信息,例如调度静态资源等,通过相应的这些资源文件处理用户请求和参数,并调用数据库信息,最后将结果过返回给客户端
image.png

###五、返回响应数据
在HTTP里,有请求就会有响应,哪怕是错误信息,在响应结果中都会有一个HTTP状态码

在响应结果中都会有一个HTTP状态码

image.png

###六、关闭TCP连接
为了避免服务器与客户端的资源占用和耗损,当双方没有请求或响应传递,任意一方都可以发起关闭请求。
与创建TCP连接的三次握手类似,关闭TCP连接,需要4次握手

客户端:‘老哥,我这没数据啥要给您的了,咱挂了吧’
服务端: ‘行,老哥看看俺这边还有木有数据给你’
服务端:‘我这也没数据给你了,咱挂了吧’
客户端: ‘ok’

image.png

###七、浏览器解析HTML
###八、浏览器渲染页面
这两节请移步: 前端必会知识点-浏览器的渲染机制

参考: https://www.xuecaijie.com/it/157.html#1Q64mGlBmKFF

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值