【计算机基础速成】第九课:浏览器输入 URL 后发生了什么

4 小时前
1

【计算机基础速成】第九课:浏览器输入 URL 后发生了什么

1. 这节课的目标

“浏览器输入 URL 后发生了什么”是计算机网络和后端面试中的经典综合题。

它经常被问,是因为这道题能一次性考到很多内容:

  • DNS
  • TCP
  • HTTPS
  • HTTP
  • 浏览器渲染

这节课学完后,你至少要做到:

  • 能说清输入 URL 后的大致流程
  • 能把 DNS、TCP、HTTP 串起来
  • 能知道 HTTPS 在中间多了什么
  • 能给出一版适合实习面试的稳定回答

2. 先记住整体流程

你可以先把这题理解成下面 7 步:

  1. 浏览器解析 URL
  2. DNS 解析域名
  3. 建立 TCP 连接
  4. 如果是 HTTPS,再进行 TLS 握手
  5. 浏览器发送 HTTP 请求
  6. 服务器处理请求并返回 HTTP 响应
  7. 浏览器解析响应并渲染页面

这 7 步就是你回答这道题的主骨架。

Mermaid Loading...

3. 第一步:浏览器解析 URL

一句话理解

浏览器先把你输入的网址拆开,弄清楚要访问哪个协议、哪个域名、哪个路径。

例子

假设你输入:

https://www.example.com/user?id=1

浏览器会大致识别出:

  • 协议:https
  • 域名:www.example.com
  • 路径:/user
  • 参数:id=1

这一阶段做什么

主要是为后面的网络请求做准备。


4. 第二步:DNS 解析域名

一句话理解

把域名转换成 IP 地址。

为什么需要 DNS

因为机器之间真正通信通常靠 IP 地址,而不是靠人类更容易记的域名。

比如:

  • 你记的是 www.example.com
  • 机器更关心的是 1.2.3.4

所以浏览器需要先知道这个域名对应的 IP。

面试标准答法

在访问网站前,浏览器需要先通过 DNS 将域名解析成对应的 IP 地址,因为网络通信最终是基于 IP 地址进行的。

Mermaid Loading...

5. 第三步:建立 TCP 连接

一句话理解

拿到 IP 后,浏览器和服务器通常会先建立 TCP 连接。

为什么要先建立 TCP

因为 HTTP/1.1、HTTP/2 底层通常都依赖 TCP 来提供可靠传输。

这一阶段的核心

就是你上一课学过的:

三次握手

面试标准答法

在拿到目标服务器 IP 后,客户端通常会先和服务器建立 TCP 连接。建立连接的过程通常通过三次握手完成,从而保证双方的收发能力正常。

Mermaid Loading...

6. 第四步:如果是 HTTPS,再进行 TLS 握手

一句话理解

如果访问的是 HTTPS,那么在正式传 HTTP 数据之前,还会多一层安全协商。

你先抓住结论

  • HTTP:建立 TCP 后就可以发 HTTP 请求
  • HTTPS:建立 TCP 后,通常还要先做 TLS 握手,再发 HTTP 请求

这一阶段的目标

  • 协商加密参数
  • 建立安全连接
  • 确认服务端身份

面试标准答法

如果访问的是 HTTPS,那么在 TCP 连接建立之后,客户端和服务器通常还会进行 TLS 握手,用来协商加密参数、验证服务器身份并建立安全通信通道。

Mermaid Loading...

7. 第五步:浏览器发送 HTTP 请求

一句话理解

连接准备好之后,浏览器就会把请求报文发给服务器。

请求里通常有什么

  • 请求方法
  • 路径
  • 请求头
  • 请求体

例子

可能类似:

GET /user?id=1 HTTP/1.1
Host: www.example.com
Cookie: session=abc123

面试标准答法

连接建立完成后,浏览器会按照 HTTP 协议构造请求报文,并将其发送给服务器。请求中通常包含请求方法、请求路径、请求头以及可能存在的请求体。


8. 第六步:服务器处理请求并返回响应

一句话理解

服务器收到请求后,会根据路径、参数、业务逻辑处理,然后把结果返回给浏览器。

服务器可能做什么

  • 路由匹配
  • 参数校验
  • 调用业务代码
  • 查询数据库
  • 拼装响应结果

响应中通常有什么

  • 状态码
  • 响应头
  • 响应体

面试标准答法

服务器接收到请求后,会进行路由匹配和业务处理,必要时访问数据库或其他服务,最后按照 HTTP 协议返回响应报文,其中通常包含状态码、响应头和响应体。

Mermaid Loading...

9. 第七步:浏览器解析响应并渲染页面

一句话理解

浏览器拿到响应后,会解析 HTML、CSS、JavaScript,然后把页面显示出来。

如果是前后端分离接口

那浏览器可能不是直接渲染完整 HTML,而是:

  • 收到 JSON
  • 前端代码再根据 JSON 更新页面

面试标准答法

浏览器接收到 HTTP 响应后,会根据返回内容进行解析。如果是网页资源,就会继续解析 HTML、CSS 和 JavaScript 并渲染页面;如果是接口数据,则可能交给前端脚本进一步处理。


10. 一次访问里可能还会发生什么

如果你想让回答稍微丰富一点,可以提这几个扩展点:

  • 浏览器可能先查缓存
  • 可能有 CDN
  • 可能经过负载均衡
  • 页面里还会继续请求 CSS、JS、图片等静态资源

但你现在的优先级

不是把所有细节都讲满,而是先把主流程讲顺。


11. 如果面试官问 HTTPS 和 HTTP 的区别,要怎么串进去

你可以把它塞在第 4 步:

  • 如果是 HTTP,TCP 建立好后就发请求
  • 如果是 HTTPS,TCP 建立好后还要先进行 TLS 握手

这就是这道题里最自然的 HTTPS 切入点。


12. 一套适合实习面试的完整答法

如果面试官问:

浏览器输入 URL 后发生了什么?

你可以这样答:

浏览器输入 URL 后,首先会解析 URL,识别出协议、域名和请求路径。
然后会通过 DNS 将域名解析成对应的 IP 地址。
拿到 IP 后,客户端通常会先和服务器建立 TCP 连接,这个过程一般是通过三次握手完成的。
如果访问的是 HTTPS,那么在 TCP 连接建立之后,还会进行 TLS 握手,用来建立安全通信通道。
接着浏览器会构造并发送 HTTP 请求报文,服务器收到请求后会进行业务处理,
必要时访问数据库,最后返回 HTTP 响应。
浏览器拿到响应后,会对内容进行解析,如果是 HTML 页面就继续渲染页面,如果是接口数据就交给前端脚本处理。

这版回答已经足够应对大多数实习面试。


13. 如果面试官继续追问,可以怎么补充

追问 1:DNS 是干什么的

你可以回答:

DNS 的作用是把域名解析成 IP 地址,因为网络通信最终依赖的是 IP。

追问 2:为什么先 TCP 再 HTTP

你可以回答:

因为 HTTP 需要底层传输层协议来承载,而 TCP 可以提供可靠传输。

追问 3:HTTPS 比 HTTP 多了什么

你可以回答:

HTTPS 在 TCP 连接建立后,会额外进行 TLS 握手来建立安全通道。


14. 本课高频面试题

14.1 浏览器输入 URL 后发生了什么

标准回答

浏览器输入 URL 后,首先会解析 URL,然后通过 DNS 将域名解析成 IP 地址;接着客户端与服务器建立 TCP 连接,如果是 HTTPS 还会进行 TLS 握手;之后浏览器发送 HTTP 请求,服务器处理后返回 HTTP 响应,最后浏览器解析响应内容并渲染页面。


14.2 DNS 是做什么的

标准回答

DNS 的作用是将域名解析成对应的 IP 地址,因为网络通信最终依赖 IP 地址完成。


14.3 为什么 HTTP 请求前通常要先建立 TCP 连接

标准回答

因为 HTTP 需要底层传输协议来承载,而 TCP 可以提供可靠传输,所以客户端通常会先和服务器建立 TCP 连接,再发送 HTTP 请求。


14.4 HTTPS 在这个过程中比 HTTP 多了什么

标准回答

如果访问的是 HTTPS,那么在 TCP 连接建立之后,还会增加 TLS 握手过程,用于协商加密参数、验证服务器身份并建立安全通道。


15. 本课最小记忆卡片

卡片 1

  • 输入 URL 后主流程
  • 解析 URL
  • DNS
  • TCP
  • TLS
  • HTTP
  • 渲染

卡片 2

  • DNS:域名转 IP

卡片 3

  • TCP:三次握手建立连接

卡片 4

  • HTTPS:比 HTTP 多 TLS 握手

卡片 5

  • 服务器:处理请求、查数据、返回响应

卡片 6

  • 浏览器:解析响应并渲染页面

16. 课后练习

16.1 口头复述题

请你尝试不看讲义回答:

  1. 浏览器输入 URL 后发生了什么?
  2. DNS 的作用是什么?
  3. 为什么 HTTP 请求前通常要先建立 TCP 连接?
  4. HTTPS 在整个流程里比 HTTP 多了什么?

16.2 今日最低完成标准

如果今天时间不多,至少完成下面任务:

  1. 背会本课 6 张最小记忆卡片
  2. 能完整讲出 URL 访问的 7 个步骤
  3. 能说清 DNS、TCP、TLS、HTTP 各自在哪一步出现

17. 下一课预告

第十课:操作系统入门与进程、线程

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...