网络请求到数据返回中间都发生了什么

1.域名解析:

  • 协议: DNS

  • 技术框架:

    • 操作系统的 DNS 解析库
    • 常见的 DNS 解析服务(如Google DNS、OpenDNS)
  • 描述:

    • 浏览器获取请求的域名,检查本地 DNS 缓存,若没有则向本地 DNS 服务器发送解析请求。
    • 本地 DNS 服务器未缓存时,逐级向根域、顶级域、权威域名服务器查询,获取对应的 IP 地址。

2. 建立连接:

  • 协议: TCP(对于 HTTP)、UDP(对于一些特殊情况)

  • 技术框架:

    • 操作系统的 Socket API
    • TCP 协议栈
  • 描述:

    • 浏览器通过 Socket API 建立与服务器的 TCP 连接。
    • 通常涉及三次握手:a)浏览器向服务器发送 SYN 报文;b)服务器回应 SYN+ACK 报文;c)浏览器发送 ACK 报文,完成连接。

3. 发起请求:

  • 协议: HTTP(或 HTTPS)

  • 技术框架:

    • HTTP 库(如curl、axios、Fetch API)
  • 描述:

    • 构建 HTTP 请求,包括请求方法(GET、POST等)、URL、请求头(包含用户代理、Cookie等信息)、请求体(对于 POST 请求)。
    • 请求通过 TCP 连接发送至服务器。

4. 服务器处理:

  • 协议: HTTP(或 HTTPS)

  • 技术框架:

    • Web 服务器(如Nginx、Apache)
    • 后端框架(如Spring Boot、Express.js、Django)
  • 描述:

    • 服务器接收到请求后,首先经过 Web 服务器(如果有)处理,然后交由后端框架进行业务逻辑处理。
    • 这可能包括用户认证、数据查询、事务处理等。

5. 返回数据:

  • 协议: HTTP(或 HTTPS)

  • 技术框架:

    • Web 服务器
    • 后端框架
  • 描述:

    • 服务器构建 HTTP 响应,包括状态码(如200 OK、404 Not Found)、响应头(包含服务器信息、内容类型、过期时间等)、响应体(实际数据)。
    • 这些通过 TCP 连接返回给浏览器。

6. 浏览器处理:

  • 协议: HTTP(或 HTTPS)

  • 技术框架:

    • 浏览器引擎(WebKit、Blink)
    • 解析器(HTML 解析器、CSS 解析器、JavaScript 解析器)
    • 渲染引擎(Layout Engine)
  • 描述:

    • 浏览器接收到响应后,根据响应头中的内容类型,调用相应的解析器。解析 HTML、CSS,并构建 DOM 树、CSSOM 树。
    • 执行 JavaScript 代码,可能借助 JavaScript 引擎(V8、SpiderMonkey)。

7. 渲染页面:

  • 协议: HTTP(或 HTTPS)

  • 技术框架:

    • 浏览器渲染引擎
    • 布局引擎(Layout Engine)
  • 描述:

    • 浏览器进行布局和绘制操作,将解析后的页面元素按照优先级进行排列。
    • 最终渲染在用户的屏幕上。可能通过 GPU 进行加速。

8. 关闭连接:

  • 协议: TCP

  • 技术框架:

    • 操作系统的 Socket API
  • 描述:

    • 在 HTTP/1.1 中,默认使用长连接(Keep-Alive),连接可能被保持开放以便后续请求。
    • 在适当的时机,连接可能会被关闭。

补充说明:

  • HTTPS加密:

    • 协议: TLS/SSL

    • 技术框架:

      • OpenSSL
      • Let's Encrypt
    • 描述:

      • 在 HTTP 请求和响应的过程中,可以通过 TLS/SSL 协议进行加密通信,确保数据的安全性。
  • CDN加速:

    • 技术框架:

      • CDN服务商(如Akamai、Cloudflare)
    • 描述:

      • 利用 CDN 可以加速网络请求,通过将资源分发到全球多个节点,使用户从距离较近的节点获取数据,提高加载速度。

这是一个详细的网络请求到数据返回的过程,涉及了 DNS 解析、TCP 连接建立、HTTP 请求与响应、服务器处理等多个环节。在实际应用中,还涉及到一些优化策略和安全机制,如缓存、CDN、HTTPS 等。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值