从输入URL到页面展示到底发生了什么?

这是一个老生常谈的问题,笔者今天对这个问题进行一个总结。整个过程可分为4个步骤,分别如下所示:

1. 域名解析

当我们在浏览器的输入框中输入网址的时候,浏览器其实已经在智能地匹配可能的URL了,它会从历史或者书签等地方查找可能对应的URL,给出一些智能提示,方便智能补全,部分浏览器甚至会直接从缓存中把网页显示出来。

请求一旦发起,浏览器首先要做的事情就是解析这个域名,即找到对应的 IP。查找流程如下图所示:
这里写图片描述

2. 建立 TCP 连接

拿到域名对应的 IP 地址之后,主机浏览器与服务器建立 TCP 连接,即 TCP 的三次握手(浏览器所在的客户机向服务器发出连接请求报文;服务器接收报文后,同意建立连接,向客户机发出确认报文;客户机接收到确认报文后,再次向服务器发出报文,确认已接收到确认报文),此时客户机与服务器之间的 TCP 连接建立完成,开始通信。

3. 浏览器向 web 服务器发送一个 HTTP 请求

浏览器发出取文件命令:GET,服务器给浏览器一个永久重定向响应,浏览器跟踪重定向地址。服务器根据请求返回内容给浏览器,浏览器释放TCP连接,即四次挥手(浏览器所在主机向服务器发出连接释放报文,然后停止发送数据;服务器接收到释放报文后发出确认报文,然后将服务器上未传送完的数据发送完;服务器数据传输完毕后,向客户机发送连接释放报文;客户机接收到报文后,发出确认,然后等待一段时间后,释放TCP连接)。

关于 TCP 的三次握手与四次挥手,请移步博主的另外一篇博文:TCP 与 UDP 对比,以及 TCP 的三次握手与四次挥手

4. 返回页面

最后,浏览器显示页面中所有文本、音频、视频等文件。

主要涉及到的协议有:TCP/IP, HTTP, ARP

参考资料:
[1] 老生常谈-从输入url到页面展示到底发生了什么
[2] 从输入网址到返回页面经过了这些过程
[3] 输入url到页面返回的全过程

发布了225 篇原创文章 · 获赞 648 · 访问量 89万+

猜你喜欢

转载自blog.csdn.net/huangfei711/article/details/82019962