在浏览器地址栏输入一个URL后回车,背后会进行哪些技术步骤?
入门版
- 建立客户端与服务器的连接
- 建立连接后,客户端发送一个请求给服务器
- 服务器接受请求给予响应信息
- 客户端将返回的内容解析并呈现
- 断开连接
青春版
- 域名解析
- 发起 TCP 的三次握手
- 建立 TCP 连接后发起 HTTP 请求
- 服务器响应 HTTP 请求,浏览器得到 HTML 代码
- 浏览器解析 HTML 代码,并请求 HTML 代码中的资源(如 JS、CSS、图片等)
- 浏览器对页面进行渲染呈现给用户
详细版
参考知乎大佬回答
1. 在浏览器中输入指定网页的 URL
URL:(Uniform Resource Locators),即统一资源定位器。网络上的所有资源都靠 URL 来定位,每一个文件就对应着一个 URL,就像是路径地址。理论上,文件资源和 URL 一一对应。实际上也有例外,比如某些 URL 指向的文件已经被重定位到另一个位置,这样就有多个 URL 指向同一个文件。
- 检查缓存
![面试题 浏览器访问URL的背后真相_第1张图片](http://img.e-com-net.com/image/info8/55f01f4e71854fddbfda098a6bcabe5a.jpg)
2. 浏览器通过 DNS 协议,获取域名对应的 IP 地址
DNS:键入了 URL 之后,第一个重头戏登场——DNS 服务器解析。DNS(Domain Name System)域名系统,要解决的是 域名和 IP 地址的映射问题 。毕竟,域名只是一个网址便于记住的名字,而网址真正存在的地址其实是 IP 地址。
3. 浏览器根据 IP 地址和端口号,向目标服务器发起一个 TCP 连接请求
4. 浏览器在 TCP 连接上,向服务器发送一个 HTTP 请求报文,请求获取网页的内容
![面试题 浏览器访问URL的背后真相_第2张图片](http://img.e-com-net.com/image/info8/606c19a0858b4466b19288de9455dfd0.jpg)
5. 服务器收到 HTTP 请求报文后,处理请求,并返回 HTTP 响应报文给浏览器
![面试题 浏览器访问URL的背后真相_第3张图片](http://img.e-com-net.com/image/info8/952fb70a928f46fbafca2d67311692f8.jpg)
6. 浏览器收到 HTTP 响应报文后,解析响应体中的 HTML 代码,渲染网页的结构和样式,同时根据 HTML 中的其他资源的 URL(如图片、CSS、JS 等),再次发起 HTTP 请求,获取这些资源的内容,直到网页完全加载显示
![面试题 浏览器访问URL的背后真相_第4张图片](http://img.e-com-net.com/image/info8/ca4f3fe708c74ac8b0d316131be9c662.jpg)
7. 浏览器在不需要和服务器通信时,可以主动关闭 TCP 连接,或者等待服务器的关闭请求