面试题:一个 URL 在浏览器被输入到页面展现的过程中发生了什么


前言

这是一段~ 经典的旋律 ~,不好意思串台了,哈哈,这是一个经典的面试题:一个URL从浏览器到页面的过程中发生了什么,那么今天就带大家九浅一深来研究一下

觉得不错的同学可以加我公众号,会经常分享一些技术干货,以及热点AI和科技新闻
在这里插入图片描述


一、回答

一般过程:
URL解析: 浏览器首先解析输入的 URL,分解成协议、主机名、路径、查询参数等部分。
DNS解析: 浏览器会查询 DNS 服务器,将主机名解析成对应的 IP 地址。
建立连接: 浏览器向服务器发起连接请求,可以是 TCP 连接(HTTP)或 TLS 连接(HTTPS)。
发送请求: 浏览器向服务器发送 HTTP 请求,包括请求方法(GET、POST 等)、请求头部、请求体等信息。
接收响应: 服务器接收到请求后,处理请求并返回响应,包括状态码、响应头部、响应体等信息。
渲染页面: 浏览器接收到响应后,根据响应内容渲染页面,解析 HTML、CSS、JavaScript 等资源,并显示在用户界面上。

不同协议的区别:
HTTP 和 HTTPS: 主要区别在于安全性,HTTPS 使用了 SSL/TLS 加密传输数据,防止数据被窃取和篡改。
HTTP/1.x 和 HTTP/2: HTTP/2 相对于 HTTP/1.x 有诸多优化,如多路复用、头部压缩、服务器推送等,提高了性能和效率。
在不同协议下,整个过程的步骤基本一致,但是在建立连接和传输数据的过程中有所不同,特别是在安全性和性能方面。例如,HTTPS 需要进行 SSL/TLS 握手,而 HTTP/2 则支持多路复用等特性,从而提高了数据传输的效率。

回答这个问题时,可以根据以上步骤和不同协议的特点逐一解释,以展示自己对 Web 请求过程的理解和对不同协议的认识。

二、深入追问

面试官:
感谢你的回答。你对HTTP/1.x和HTTP/2的性能优化有了解吗?

求职者:
是的,HTTP/2相比于HTTP/1.x在性能上有很多优势。其中一个显著的区别是HTTP/2引入了多路复用的机制,可以同时在一个连接上发送多个请求和响应,避免了HTTP/1.x中的队头阻塞问题。此外,HTTP/2还支持头部压缩和服务器推送等特性,能够进一步提升网络传输效率和页面加载速度。

面试官:
那你能详细解释一下HTTP/2的多路复用是如何工作的吗?

求职者:
当客户端和服务器之间建立了一个HTTP/2连接后,这个连接上可以同时传输多个请求和响应。每个请求和响应都有一个唯一的标识符,称为Stream ID。HTTP/2使用这些Stream ID来区分不同的请求和响应,然后通过帧(Frame)来传输数据。多路复用意味着这些帧可以在同一个连接上交错传输,而不需要像HTTP/1.x那样一个请求一个连接。这样就避免了HTTP/1.x中因多个连接导致的队头阻塞问题,从而提高了网络传输的效率。

面试官:
非常好,你对HTTP/2的理解很透彻。那么你能谈谈HTTP/1.x中的队头阻塞问题吗?

求职者:
当浏览器发起多个请求时,如果这些请求使用同一个TCP连接,那么在HTTP/1.x中就会出现队头阻塞问题。因为HTTP/1.x是按顺序发送请求和响应的,如果前一个请求耗时较长,那么后面的请求就必须等待前一个请求完成后才能发送。这样就会导致后续请求的延迟,降低了页面加载速度。

面试官:
明天来上班吧~~

  • 16
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

romanYSX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值