浏览器输入url会发生什么

3/5/2022 网络

# 浏览器输入url会发生什么

  • 浏览器先判断是否为合法的url格式,不合法则在搜索引擎中搜索
  • 合法后,DNS解析会先判断缓存中是否有url的ip地址。
  • 缓存的查询顺序是:浏览器缓存 -> 操作系统缓存(本地的hosts文件) -> 路由器缓存 -> 本地的DNS服务器缓存
  • 在缓存中没有的情况,则向服务器发起请求查询ip地址。
  • 查询IP地址的顺序是:根域名服务器 -> 顶级域名服务器 -> 权威域名服务器。直到查找到返回,并将其存储在缓存中下次使用
  • TSP建立连接,也就是三次握手
  • 第一次握手,携带建立连接请求SYN=1和随机序列seq=x
  • 第二次握手,携带确定字段ACK=1、连接请求SYN=1、随机序列seq=y和ack为上一次握手的seq+1,就是x+1
  • 第三次握手,携带确定字段ACK=1、ack=y+1、seq=x+1
  • 如果是https,还有一个TLS四次握手
  • 第一次握手,客户端向服务端发送 支持的协议版本 + 支持的加密方法 + 生成的随机数
  • 第二次握手,服务端向客户端发送 证书 + 公钥 + 随机数
  • 第三次握手前,客户端会先验证证书有没有过期、域名对不对、是否可信机构颁发的。
  • 没有问题或者用户接受不受信的证书,浏览器会生成一个新的随机数
  • 第三次握手,将之前的三个随机数通过一定的算法生成会话秘钥,之后的加密解密都是用这个秘钥
  • 第四次握手,服务端收到回复,是用确定的加密方法进行解密,得到第三个随机数,使用同样的算法计算出会话秘钥
  • 建立连接之后,浏览器发送http请求
  • 请求报文由请求行、请求头、空行和请求体组成
  • 服务器解析请求报文,返回响应报文
  • 响应报文由响应行、响应头、空行和响应体组成,我们需要的html文件就在响应体中
  • 浏览器拿到html文件并开始解析,构建dom tree。遇到css文件,下载并构建CSSOM tree。等到两者都构建完成之后,一起构建Render tree。然后进行布局和绘制
  • 其中遇到了script标签,则停止构建dom tree,等下载完成之后才会继续构建dom tree
  • 当资源传输完毕之后,TSP关闭连接,进行四次挥手的操作,其中四次挥手的操作客户端和服务器都可以发起
  • 第一次挥手,携带断开连接的FIN=1、确定字段ACK=1、随机序列seq=u,ack=v
  • 第二次挥手,携带确定字段ACK=1、随机序列seq=v,ack=u+1
  • 第三次挥手,携带确定字段ACK=1、断开连接FIN=1、随机序列seq=w、ack=u+1
  • 第四次挥手,携带确定字段ACK=1,随机序列seq=u+1,ack=w+1
  • 等待2MSL后进入关闭状态
  • 断开连接,结束通讯