• 浏览器解析URL全部流程


    1,解析URL:将输入的URL解析成协议,域名,路径等信息

    2,解析DNS:将域名解析成对应的IP( ip 指的是网络为每一台电脑分配的一个地址。由于 ip 地址不容易被记住,所以有了域名,浏览器拿到域名后,首先要先把域名解析成 ip,然后找到 ip 对应的机器。解析域名通常使用的方法是 DNS 解析,为了让查找过程更高效,浏览器和操作系统都会将每次的解析结果缓存起来,在下次解析的时候,就会先从缓存中去查找 ip(解析方式:查找本地缓存中 ——> DNS数据缓存中 ——> DNS解析对应ip)。浏览器首先会从本地缓存中找,如果找到就用缓存,如果找不到就会向DNS服务器发送请求,获取对应的IP

    3, 建立TCP连接:浏览器根据协议选择相应的端口号与服务器建立TCP连接,如果URL是HTTP协议,则会先进行SSL/TLS握手然后进行安全连接

    4,发送请求:浏览器构建请求报文,请求报文包括请求行,请求头,请求体等信息,然后将请求报文发送给服务器

    5,服务器处理请求:服务器接受到请求报文后,然后去调用相应的后端程序,去查询数据库等操作

    6,接受HTTP响应:服务器将处理完的信息包装成相应报文,然后发送给浏览器

    7,浏览器解析和渲染响应体:浏览器接受到相应报文,首先检查HTTP的响应状态码,去判断请求的成功与否,然后去解析响应报文

    8,页面布局和渲染:浏览器将HTML解析成dom树,将css解析成CSSOM树,将它们合成RenderTree,计算它们大小和在页面的具体位置,然后将它们布局到页面上

    9,加载其他资源:去加载页面存在的其他加载资源,如css文件,js文件和图片等,浏览器根据HTML文档解析的结果,去重新发送请求

    10,执行js代码:HTML中包含js代码,浏览器根据解析结果去执行js代码,从而实现用户交互效果

    11,用户交互:用户可以和页面互动,去实现js代码功能,也可以去点链接等去重新发送请求,重复执行上述代码

    12,断开连接:当用户关闭浏览器窗口或输入新的URL或服务器响应报文connection字段指定断开连接,浏览器会断开与服务器的连接。

  • 相关阅读:
    vue自定义指令directives
    Python configparser模块
    LVGL_基础控件Switch_Button
    a股level2数据接口的最优委托信息
    JAVA上门家政服务系统源码微信小程序+微信公众号+APP+H5
    element plus封装el-select添加后缀图标并添加远程搜索和对话框功能
    JMeter--逻辑控制器--仅一次控制器
    【Map 和 WeakMap 的区别】
    Java面试题:解决Redis缓存击穿问题
    Android注解快速入门和实用解析
  • 原文地址:https://blog.csdn.net/qq_43532275/article/details/132715674