1

我想构建一个非常详细的答案,以准备软件工程面试,并真正了解“幕后”发生的事情。

我现在拥有的是:

当您输入 url 时,浏览器和服务器之间会发生 TCP 握手。一旦建立连接,对网页的请求就会通过数据中心的负载均衡器路由到服务器。该特定服务器会将网页返回给浏览器,浏览器根据网页中指定的 DOM 规则呈现它以供显示。因此,连接速度受以下因素影响: 1) 数据中心的位置 2) 负载均衡器使用的路由算法 3) 包含网页的服务器清除发送的请求所需的时间

这是我在一次采访中给出的答案,被认为是不够的。我知道这可能是初级的,并且正在坚定地尽可能多地理解这个过程。请问有人可以很好地解释这个问题吗?

4

1 回答 1

1

我想你可能过度分析了它。在浏览器上加载需要很长时间的网页在移动设备上加载也需要很长时间,反之亦然。

与 TCP 握手、DNS、数据中心位置等相比,资源大小(图像、html、CSS、JS 等)的加载时间要长得多。

此外,您可能想指定更多详细信息 - 它是旧网页吗?它是由缺乏 CPU 等资源的服务器托管的网页吗?数据库是否受到太大影响,这会影响性能吗?

扩展该概念:

http://www.pcworld.com/article/2038500/why-some-web-sites-are-much-slower-than-others.html

在我看来,从最有可能的候选人到最少:

  • 网速
  • 页面大小(使用 Chromes 开发工具检查哪些资源需要什么时间加载)以及开发人员是否知道他/她在做什么(CSS、JS 等中的选择器效率)
  • 服务器电源/数据库电源
  • 各种网络复杂性(DNS、服务器位置、TCP 握手等)

我确定我错过了一些,但我会在我去的时候添加到这个列表中。

于 2015-01-15T03:38:14.957 回答