当浏览器请求一个网页之后发生了什么

浏览器输入URL回车之后的流程

这个问题牵涉到计算机网络的方方面面,每一步单拎出来都可以扩展很多知识,在这里做一个总结,对关键部分进行深入探讨。

  1. 浏览器解析网址获得相应信息

  2. 浏览器生成HTTP报文

  3. 浏览器通过Socket库下的解析器发出DNS查询请求

  4. 通过DNS服务器找到对应IP地址并响应给解析器

  5. 浏览器拿到目标IP后通过TCP三次握手与服务端建立连接

  6. TCP模块在数据块前加上TCP头部传递给IP模块

  7. IP模块添加IP头部和MAC头部之后将封装好的包传递给网卡等硬件设备

  8. 网卡和相关驱动程序将数字信号转成电信号或光信号

  9. 交换机、路由器进行数据包转发

  10. 服务端接收到请求,将响应数据按传输的顺序反向传输

  11. 接下来的步骤是请求路径的逆序

  12. 最后浏览器顺利获得响应数据,渲染成HTML页面进行展示

牵涉到的相关协议:HTTP、TCP、UDP、DNS、ICMP、IP

DNS域名解析流程

浏览器在发送DNS请求时,先查看浏览器缓存是否有记录,如果没有,再查看DNS解析器是否有记录,若无接着查看本地的host文件,如无请求到达最近的(或指定的)DNS服务器,首先查看DNS缓存中是否有记录,如果仍旧没有查询到,那么DNS请求会从根服务器往下,逐级查询DNS服务器中的注册表,最终一定会在某一级中找到返回查询结果。大致流程如下图(自己画的,顺便推荐一个在线作图网址,支持流程图、思维导图、原型图、UML、网络拓扑图、组织结构图等:https://processon.com/

本文已结束 ❤ 感谢阅读
觉得文章不错,赞赏站长一包辣条( •̆ ᵕ •̆ )◞ ❤
0%