浏览器的工作原理:从在地址栏输入 google.com 到显示 google 页面发生了什么?

2020-11-08 16:43:00 +08:00
 MendaxT
https://www.html5rocks.com/zh/tutorials/internals/howbrowserswork/
2438 次点击
所在节点    分享发现
7 条回复
lxk11153
2020-11-08 18:26:58 +08:00
我记得以前在 github 看过一个, 不知道是不是它 https://github.com/alex/what-happens-when
tuding
2020-11-08 19:37:40 +08:00
我还以为从 ARP request 讲起
MendaxT
2020-11-08 19:53:57 +08:00
@lxk11153 学习了,原链接解释的角度更偏向于编译原理。搜索引擎还是比较难能够准确定位某些问题,社交推荐可以解决一部分
MendaxT
2020-11-08 20:27:25 +08:00
而且意外定位到了这个问题的发起者, 一位 google 的工程师尝试在面试中问这样的开放问题来 考察掌握的知识,因为过程并无单一正确答案。


“据我所知,我是这个问题的发起者。

我在 2003/2004 年在 Google 的 Sys Admin 小组工作时开发了此程序(之前是 SRE )。

我正在面试很多候选人,我想问一个问题,使他们可以就可能采取的行动进行尽可能深入的讨论,以便他们可以展示他们对事物如何运作的端到端知识。LAN 上的本地主机,通过网络元素,到达其 ISP,通过 DNS,通过 BGP,到达目标网络,通过防火墙 /负载平衡器,然后到达目标服务器,通过软件堆栈(由他们选择),到达应用服务器,数据库等,然后返回。

如果他们了解开窗事件,键盘中断,网卡缓冲区,GUI 绘图调用或其他任何内容,则可以随意添加。

我还将以此为出发点,对他们假定的配置进行各种更改,并讨论该技术。例如 DNS 服务器是在其局域网上还是必须路由到(如果这样,则网络掩码和 ARP 如何工作),它们是否已经具有 IP 地址,本地 DNS 缓存如何工作等。

这个问题有一个未解决的问题,即“您重新启动计算机,会发生什么?” 我同时开始使用它们来完成关机和引导过程,以测试他们对启动过程和操作系统功能的理解。

想法是,这些问题可以让他们告诉我他们所知道的知识以及他们对知识的了解程度,这是在实际必须处理的内容(围绕实际工作问题的具体信息)的背景下进行的,该问题是在网络上进行故障排除请求以及网络组件链的工作方式。

这样做的主要目的是摆脱诸如“ XYZ 如何工作?”之类的特定知识问题。和“在什么情况下会失败?” 诸如此类的事情,如果他们知道我所知道的,那实际上是抽查,这只会导致包容性招聘。

我还尝试让他们在面试中学习,测试他们是否可以轻松做到这一点。当他们到达他们不知道的部分时,我会提示他们,看看他们是否可以弄清楚如何使用新信息从步骤 A 到步骤 C,以及他们是否有“啊哈!” 时刻。

最后,我还将尝试让他们向我解释其中的一部分,因为他们对此有更深的理解,这样我就可以知道他们是否也可以教信息。”

Reference:https://www.reddit.com/r/programming/comments/2sqq7o/what_happens_when_you_type_googlecom_into_your/
xiandefh
2020-11-09 00:48:08 +08:00
会发生该页无法显示
goodboy95
2020-11-09 21:46:49 +08:00
过程嘛,大概就是,首先走本地 dns 缓存或者 dns 服务器拿到 google 的 IP,然后发个 tls 包,向对面的服务器询问流量加密方式。发包之前要先 tcp 握个手,中间某个节点给你直接返回一个 rst 终止掉连接,浏览器认为连接出问题,就显示 err_connection_reset 。
konchu
2020-11-17 10:20:04 +08:00
@goodboy95 实用层面的正解:)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/722929

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX