当前位置: 首页 > news >正文

从输入网址到访问服务器响应返回客户端

我们从输入网址到访问服务器逐个过程中发生的过程如下:

首先是我们输入了域名 URL,然后 HTTP 对域名进行了解析,生成要访问的域名及文件所在的位置。

接着 DNS 进行解析 IP,首先检查浏览器缓存、操作系统缓存、hosts 文件是否存在 IP,如果不存在就询问本地 DNS 服务器,本地 DNS 服务器再询问根 DNS 服务器,根 DNS 服务器再询问顶级域(TLD)DNS 服务器,最后由权威 DNS 服务器返回 IP 地址。

在 DNS 返回 IP 地址之后,传输工作就由 HTTP 交给协议栈。首先在协议栈中写入 TCP 头部,TCP 确定源端口和目标端口,并完成流量控制和拥塞控制。TCP 在传输数据之前需要进行三次握手:客户端发送 SYN,服务端返回 SYN+ACK,客户端再返回 ACK。如果 HTTP 请求超过 MSS,TCP 会将数据分割成多个报文段,每个报文段都加上 TCP 头信息。TCP 里面有两个端口:一个是浏览器端口,一个是 Web 服务器监听端口。将数据部分封装为 HTTP 头部 + 数据报文后交给网络层传输。

IP 协议确定源 IP 和目标 IP。由于 HTTP 是基于 TCP 的,数据包的协议号写 0x06(TCP)。如果主机有多网卡,需要根据路由表选择发送的网卡。通过目标 IP 与子网掩码按位与得到网络号,然后根据路由表选择对应网卡,生成数据包。

然后是 MAC 层,以太网帧包含发送方 MAC、接收方 MAC 和协议类型。协议类型编码有两种:0x0800 表示 IP 协议,0x0806 表示 ARP 协议。发送方 MAC 固定在网卡中,接收方 MAC 通过 ARP 获取:先查 ARP 缓存,如果没有则广播询问,目标主机收到广播后以单播方式返回 MAC,发送方写入帧头并缓存。

至此,MAC 报文生成完成。网卡将数据包转为电信号发送出去,网卡驱动程序负责控制网卡,将数据包复制到缓存区,加上帧头、起始帧分界符和 FCS,然后发送。

数据包到交换机后,交换机将电信号转换为数字信号,校验 FCS 后放入缓冲区。交换机根据 MAC 表查找目的端口转发,如果找不到就广播到除源端口外的所有端口。接收端收到正确 MAC 的数据包后处理,否则忽略。

数据包到达路由器,路由器将电信号转换为数字信号,校验 FCS。如果 MAC 匹配,去掉 MAC 头读取 IP,通过路由表选择下一跳或使用默认路由。再通过 ARP 获取下一跳 MAC 后封装帧发送,经过交换机或下一跳路由最终到达服务器。

服务器接收数据包后,检查 MAC 和 IP 地址,TCP 检查序列号完整性,将数据写入缓存并返回 ACK,根据端口号交给 HTTP。HTTP 根据请求生成响应,封装 TCP/IP/MAC,通过网络返回客户端。客户端接收并拆开数据包,浏览器渲染页面。

最后 TCP 进行四次挥手关闭连接,完成整个过程

http://www.jsqmd.com/news/542207/

相关文章:

  • 155农村事务管理与交流平台系统-springboot+vue+微信小程序
  • 功能齐全的屏幕截图C++实现详解(附源码)
  • 智能周报生成器:OpenClaw+百川2-13B自动汇总工作成果
  • 156湖南交通工程学院学生就业信息系统-springboot+vue
  • 告别理论!用Cobalt Strike实战红日靶场:从蚁剑上线到SMB Beacon横向移动的避坑指南
  • 什么时候会触发FullGC
  • 百川2-13B模型量化对比:4bits与8bits版本在OpenClaw任务中的差异
  • AI 辅助 AUTOSAR 测试
  • python 第六课 (字典 函数 None 作用域 函数嵌套 函数递归调用 重点)
  • 3步掌握高效视频处理:ffmpegGUI让复杂命令可视化
  • 高效掌握BBDown:全场景哔哩哔哩视频下载工具使用指南
  • AutoDock Vina分子对接中过渡金属原子类型处理的5种突破性策略:高级技术架构指南
  • Switch-Toolbox:如何破解任天堂游戏文件编辑的三大技术难题?
  • 别再只调API了!用Java手搓一个能“思考”和“行动”的AI Agent(附完整代码)
  • 同步异步通信:UART详解
  • 3个步骤极速部署AdGuard广告拦截扩展:跨浏览器零门槛配置指南
  • 解锁compressorjs的图像优化能力:打造高性能Web应用的前端图片处理方案
  • E820 内存映射表深度解析
  • Elasticsearch 7.x 安全加固实战:从裸奔到密码保护的完整配置指南
  • Hearthstone-Script终极指南:如何免费自动化你的炉石传说游戏体验
  • 2026年质量好的企业oa系统/oa办公管理平台热门公司推荐 - 品牌宣传支持者
  • LFM2.5-1.2B-Thinking-GGUF参数详解:max_tokens/temperature/top_p调优实战
  • 从Fastjson到OGNL:JSONPath与表达式语言的性能对比与选型建议
  • 包装器简介
  • X-TRACK二次开发终极指南:如何基于开源框架快速扩展新功能
  • OpenClaw定时任务:百川2-13B实现每日早报自动生成与发送
  • vLLM-v0.17.1入门必看:WebShell交互式调试LLM推理全流程
  • 真空贴体包装机哪家好?2026海产品气调包装厂家优选,实力品牌,护航保鲜全链路 - 栗子测评
  • ViGEmBus如何解决Windows游戏控制器兼容性难题?
  • 2026年热门的oa品牌公司推荐 - 品牌宣传支持者