面试题:浏览器地址栏输入地址到页面渲染完成发生了什么?

  1. 浏览器进行地址解析

    1. 浏览器得到url地址后开始解析,获取该地址的端口号、域名、协议、路径等信息。
    2. 有些信息不是必须的,浏览器会默认补齐。
  2. 将解析的域名进行DNS解析。
    将第一步的解析的信息转换成对应的ip地址,这就是DNS解析,分为以下步骤
    1. 首先查看浏览器中时候有对应的DNS缓存, 如果有则直接使用
    2. 如果没有查看操作系统DNS是否有对应的值(host文件)
    3. 如果还是没有则向本地DNS服务商发送查询请求
    4. 如果仍然没有则直接到Root Server域名服务器请求解析

  3. 通过ip地址寻找服务器地址

    1. 获取到ip地址后寻找ip地址对应的服务器
  4. 与服务器进行三次握手建立连接
    1. 浏览器请求报文到达服务器之后,服务器接口会对请求报文进行处理,执行接口对应的代码,处理完成后响应客户端。由于http是无状态的,正常情况下,客户端收到响应后就会直接断开连接,然后一次http事物就完成了。但是http1.0有一个keep-alive的请求字段,可以在一定时间内不断开连接(有时时间甚至很长)。http1.1直接就默认开启了keep-alive选项。这导致了一个后果是服务器已经处理完了请求,但是客户端不会主动断开连接,这就导致服务器资源一直被占用。这时服务器就不得不自己主动断开连接,而主动断开连接的一方会出现TIME_WAIT,占用连接池,这就是产生SYN Flood攻击的原因。
  5. 浏览器发送数据,等待服务器的响应
  6. 服务器响应并返回数据
  7. 浏览器接收到数据
  8. 浏览器开始渲染页面

猜你喜欢

转载自blog.csdn.net/daiwu4044/article/details/81811795
今日推荐