当用户输入一个url,到看到页面期间,经历了什么?简单理解

·  阅读 128

DNS解析(缓存)

什么是DNS?

  • 百度一下,不难得知,DNS全名为域名系统协议,作用为IP地址和域名之间的相互转换
    而DNS解析就是DNS的应用,在你访问域名的时候,将域名转化为IP地址

什么是DNS缓存

  • 简单来说,每当你访问一次域名后,浏览器和计算机等设备会帮你记录下相应网址的IP地址,大大的减少了网络请求的消耗

缓存的查找顺序

  • 查找浏览器DNS缓存
  • 查找本地DNS缓存(CMD -> ipconfig /displaydns)
  • 查找路由DNS缓存
  • 查找运营商的DNS缓存(正常最多到此结束)
  • 查找全球13台根DNS服务器(递归查询,基本不会发生)

建立连接(三次握手)

三次握手过程

  • 第一次:浏览器向服务器发送连接请求
  • 第二次:服务器收到请求后,由服务器向浏览器发送同意连接响应
  • 第三次:浏览器接收响应,发送给服务器连接成功的信号

发送请求(请求报文)

接收响应(响应报文)

浏览器解析HTML

  • 预解析:发出请求,请求所有外部资源(.css、.js、...)
  • 解析HTML:生成DOM树
  • 解析CSS:生成CSSOM树
  • 将以上两者合并为Render树
    • 从根节点开始遍历每一个可见的节点
    • 为每一个节点匹配相应的css样式
    • 显示可见节点
  • 查看JS是否对DOM进行操作
    • 有:进行重绘/回流
    • 无:NULL
  • 展示页面

断开连接(四次挥手)

  • 第一次:浏览器向服务器发出请求,请求断开连接
  • 第二次:服务器接受请求,向浏览器发出响应,此时响应信息可能没有发送完全
  • 第三次:服务器发送完响应信息,可以断开
  • 第四次:浏览器接收响应,向服务器发送确认断开信息

如有错误,希望提出

希望大家都能早日拿到心仪的offer,加油,共勉

分类:
前端
标签:
分类:
前端
标签: