浏览器输入URL之后发生什么

  • 用户输入URL地址
  • 对URL地址进行DNS域名解析
  • 进行TCP连接
  • 进行HTTP报文的请求与响应
  • 浏览器解析文档资源并渲染页面

DNS域名解析

  1. 浏览器根据url,在自身缓存中查找DNS中的解析记录。如果存在,则直接返回IP地址;如果不存在,则查找操作系统中的hosts文件是否有该域名的DNS解析记录,如果有就返回
  2. 若上一步没有解析记录,或者已过期,则向域名服务器发起请求解析这个域名。
  3. 先向本地域名服务器中请求,若解析不了,再向根域名服务器请求。
  4. 根域名服务器给本地域名服务器返回一个主域名服务器,本地域名服务器向主域名服务器发起解析请求。
  5. 主域名服务器收到解析请求后,查找并返回域名对应的域名服务器地址。
  6. 域名服务器会查询存储的域名和IP的映射关系,返回目标IP记录以及一个TTL(time to live)值。
  7. 本地域名服务器接收IP和TTL值,进行缓存,缓存的时间由TTL控制。
  8. 将解析的结果返回给用户,用户根据TTL值缓存在本地系统中,域名解析结束

TCP三次握手与四次挥手

TCP,一种面向连接的、可靠的、基于字节流的传输层通信协议。作用是将数据流从一台主机可靠的传输到另一台主机。

三次握手

  1. 第一次握手,起初客户端与服务器都处于CLOSED关闭状态,Client将标志位SYN置为1,随机产生一个seq = x,并将该数据包发送给Server,Client进入SYN-SENT状态,等待Server确认。
  2. 第二次握手,Server收到数据包后,由标志位SYN=1得知Client请求建立链接Server将标志位SYN和ACK都设置为1, ack=x+1,随机产生一个值seq = y,并将该数据包发送给Client。Server进入SYN-RCVD状态,此时操作系统为该TCP连接分配TCP缓存和变量。
  3. 第三次握手,Client收到确认后,检查ack是否为x+1,ACK是否为1,如果正确则将标志位ACK设置为1,ack=y+1。Server收到数据包后,检查ack是否为y+1,ACK是否为1,如果正确,则建立成功,完成三次握手。

四次挥手

浏览器渲染页面

  1. 解析HTML,生成DOM tree。
  2. 解析CSS,生成CSSOM tree。
  3. 结合DOM 和 CSSOM,生成Render TREE。
  4. 生成布局(layout),将所有渲染树的所有节点进行平面合成
  5. 将布局绘制(paint)在屏幕上
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值