浏览器输入网址并打开的整个过程

一、 输入导航栏输入网址(jd.com)

二、域名解析

域名解析就是有域名到ip地址的过程,一般分为以下几步:

  1. 浏览器缓存,浏览器会缓存DNS(Domain Name System,域名系统)一段时间
  2. 系统缓存,从本机host中查找是否有对应的域名及ip
  3. 路由器也会缓存域名信息
  4. ISP(baiInternet Service Provider,即因特网服务提供商) DNS缓存,到互联网服务提供商的DNS里查找缓存,ISP的DNS缓存时间一般是1个小时。前后2次间隔1个小时的话,他就去域名的DNS上重新取得数据。这里说的是最近一次和当前的比较,也就是说如果时间差距较大,就重新去域名的DNS服务器上找。
  5. 如果按照以上信息都找不到域名信息,就会从域名的根服务器去查找域名对应的ip

三、网络传输通信

三次握手

拿到服务器ip之后要先建立连接才能通信,首先是三次握手。三次握手的目的是“为了防止已经失效的报文突然传输到服务器端,因而导致的错误”

客户端:在吗,想去找你玩呀
服务端:在的,欢迎
客户端:好的马上到

三次握手完成后,客户端与服务端建立稳定的虚拟通道。客户端就可以将一个http请求打包,通过tcp协议发送给服务器

服务器返回

服务器解析,基于linux或者window,系统里面安装了web sever的应用,web sever又叫web服务器,专门处理网上信息浏览服务。
web服务器接收到请求,根据http协议解析并处理,返回响应信息html文档或者其他结果。
有Apach,nigx,Node等web服务器

客户端拿到数据

四次挥手

四次挥手,别名连接终止协议,其性质为终止协议。
通信完成之后通过四次挥手拆除tcp链接,客户端与服务器端均可发起。

四、页面构建阶段

页面构建的目标是为了建立Web应用的UI,页面构建主要分为2个阶段

  1. 解析HTML代码并构建文档对象模型
  2. 执行JavaScript代码

浏览器解析DOM时是自上而下的执行,采取深度遍历的策略。当遇到外部css文件或者图片时,会采用异步加载,并不会影响HTML加载。

回流是dom节点和样式都已经加载完成,由于新的样式下载下来或者script脚本执行,生成新的样式,这个过程称为回流。新生成的样式重新写入并更新到页面,这个过程称为重绘。也就是说回流必然导致重绘。

当浏览器在页面构建阶段遇到脚本节点,它会停止执行HTML的DOM构建,开始执行JavaScript代码。

五、总结

刚构思的时候觉得没什么东西,写起来越写越多,还有许多地方需要完善,慢慢补充。如有问题请联系我~

猜你喜欢

转载自blog.csdn.net/qq_37617413/article/details/109604255