一般的回答

  • 浏览器根据地址栏的输入内容,判断是“搜索”还是“请求url”
  • 进行DNS解析,根据域名找到对应的IP地址
  • 建立TCP连接,会有一个三次握手的过程
  • 发送HTTP请求
  • 服务器接收到请求,进行处理,并将结果响应给浏览器
  • 浏览器接收到响应,准备渲染页面
  • 浏览器和服务器如果不再需要通信了,就断开TCP连接,会有一个四次挥手的过程
  • 浏览器渲染页面,用户看见

更关键的点,在于浏览器是如何渲染页面的。

更详细的答案

基于这道题,能把整个互联网的知识涵盖进来,写一本大书绰绰有余。

我们还是只讲最基本的东西。

先看一张流程图

从输入 URL 到页面展示完整流程示意图

从输入 URL 到页面展示完整流程示意图.png
这个过程可以大致描述为如下。
首先,浏览器进程接收到用户输入的 URL 请求,浏览器进程便将该 URL 转发给网络进程。

然后,在网络进程中发起真正的 URL 请求。

接着网络进程接收到了响应头数据,便解析响应头数据,并将数据转发给浏览器进程。

浏览器进程接收到网络进程的响应头数据之后,发送“提交导航 (CommitNavigation)”消息到渲染进程;

渲染进程接收到“提交导航”的消息之后,便开始准备接收 HTML 数据,接收数据的方式是直接和网络进程建立数据管道;

最后渲染进程会向浏览器进程“确认提交”,这是告诉浏览器进程:“已经准备好接受和解析页面数据了”。

浏览器进程接收到渲染进程“提交文档”的消息之后,便开始移除之前旧的文档,然后更新浏览器进程中的页面状态。

导航:

用户发出 URL 请求到页面开始解析的这个过程,就叫做导航。
**

**

后续:详细的渲染机制,放到后面两节讲。