输入URL后发生了什么

  1. 用户在浏览器地址栏中输入网站域名
  2. 浏览器拿到该域名先去本地hosts文件中查找对应的ip地址,未找到时自动去请求 DNS服务器查询 用户输入的域名对应的 ip 地址
  3. 浏览器拿到 ip 地址之后,通过ip地址+端口号(HTTP默认80)和服务器建立连接(通过 三次握手 )
  4. 三次握手建立连接成功之后
  5. 浏览器将用户输入的 url 地址通过 HTTP 协议包装成 请求报文 ,然后通过 Socket(服务器ip地址和端口号) 发送到服务器
  6. 当HTTP服务器接收到客户端浏览器发送过来的请求报文时候,按照 HTTP 协议将请求报文解析出来
  7. 然后服务器拿到请求报文中的请求信息(例如请求路径url),做相应的业务逻辑处理操作
  8. 当业务逻辑处理完毕之后,服务器将要发送给客户端的数据按照 HTTP 协议包装成 响应报文
  9. 然后服务器通过 Socket(客户端的ip地址+端口号) 将响应报文数据发送给客户端浏览器
  10. 当浏览器接收到服务器发送给自己的响应报文数据的时候,浏览器根据 HTTP 协议将报文内容解析出来
  11. 浏览器拿到响应报文体中的数据开始 解析渲染html、css,执行 JavaScript,如果在解析的过程(从上到下)中,发现有外链的标签(link、css、img),浏览器会自动对该标签指向的 路径地址 发起新的请求(还是通过 Socket )。
  12. 解析html生成dom树 + cssom树,结合二者生成最终的渲染树,然后浏览器UI后端进行最终的绘制。浏览器解析渲染的过程并非严格顺序执行的,而是串行进行,为了提高网页性能,要减少浏览器的reflow和repaint。

浏览器的主要结构:

  1. 浏览器引擎 + 渲染引擎 + JS解释器
  2. 用户界面 + UI后端
  3. 网络
  4. 数据存储


    输入URL后发生了什么_第1张图片
    image.png

参考:
里面除了讲url输入后的事情,还讲到了浏览器的主要结构
这个步骤描述比较简洁

你可能感兴趣的:(输入URL后发生了什么)