输入URL到页面展示的核心逻辑链

浏览器输入url到页面展示过程(https请求过程)

  • DNS解析域名得到服务器ip地址
  • TCP三次握手TCP三次握手-CSDN博客
  • 客户端发送http请求
  • 服务器响应请求
  • 客户端渲染页面
  • TCP四次挥手
​两个核心概念
​FIN包:FIN=1,表示请求终止连接​(相当于说“我要挂电话了!”)。
​ACK包:ACK=1,表示确认收到数据​(相当于说“我收到了!”)。


​四次挥手流程
第一次挥手:客户端发送 FIN=1 的包给服务端
​目的:“我要关闭连接了!”

第二次挥手:服务端回复 ACK=1 的包。
​目的:ACK=1:“我收到你的关闭请求了!”
(此时服务端可能还在发送未完成的数据)

第三次挥手:服务端处理完剩余数据后,发送 FIN=1 的包给客户端。
​目的:“我也要关闭连接了!”

第四次挥手:客户端回复 ACK=1 的包。
​目的:“我收到你的关闭请求了,彻底断开吧!”

​一句话总结流程
客户端:FIN(我要断开) → 服务端:ACK(收到) → 服务端:FIN(我也断开) → 客户端:ACK(收到) → ​连接释放!​

​类比:挂电话
​你说:“我说完了,挂了啊!”(FIN)
​对方说:“好,我知道了!”(ACK)
​对方接着说:“我也说完了,挂了吧!”(FIN)
​你最后说:“行,挂吧!”(ACK) → ​双方挂断

简述框架

“整个过程分为网络连接 → 服务端处理 → 前端渲染三个阶段。以知识库搜索为例:

  1. 网络层:浏览器通过DNS解析域名,经过TCP三次握手建立HTTPS安全连接
  2. 服务端层:Nginx将请求转发到Spring Boot,先查Redis缓存,未命中则查询MySQL并缓存结果;
  3. 前端层:Vue接收JSON数据后,通过Vuex更新状态,最终由ECharts动态渲染图表。
    整个过程通过缓存和索引优化保障性能,同时Spring Security完成权限校验。”
用户输入URL  
│  
├─ 网络层:DNS → TCP握手 → HTTPS加密  
│  
├─ 前端层:Vue路由 → Axios请求 → 拦截处理  
│  
├─ 后端层:Nginx → Spring Boot → Redis → MySQL  
│  
├─ 数据层:JSON序列化 → 响应封装  
│  
└─ 渲染层:Vuex → ECharts → 页面更新  

你可能感兴趣的:(软件测试理论基础,python)