可能重复:
当您在浏览器中浏览网站时究竟发生了什么。
... 描述从您按下回车键到您的浏览器收到响应期间发生的所有事情。
我今天在一次面试中遇到了这个问题。我觉得我回答得不是很好。你会如何描述发生的事情?(10 分钟或更短)。
答案1
大致,
- 浏览器将 URI* 解析为 IP 地址。
- 浏览器向该 IP 发送 GET 请求。
- 服务器找到了正确的文件。
- 服务器处理该文件。
- 文件已发送给您。
*统一资源标识符
答案2
你想让我写一些大约需要 10 分钟才能读完的东西吗?... 该数据库支持这一点吗!?
... 无论如何,为此,您需要了解一些事情 - 特别是 HTTP 协议和 DNS 的基础知识。
由于我能说的太多了,因此每个步骤都省略了各种信息,所以我只会讲基础知识 - 但如果你想了解任何具体内容,请说出来,我会尝试进行编辑。
首先,当您输入地址时,浏览器会针对该地址发起 DNS 查询。(这将执行常规查找 - 缓存、主机文件然后是服务器。)
接下来,dns 返回答案,您的浏览器向服务器的 ip 地址发送 http 请求,其中包含您尝试访问的地址的主机标头以及各种其他标头和信息。
服务器通常以文本流进行响应,然后您的浏览器会显示它。
用于诊断和实验的一个好工具是 fetch(在 Linux 上)和取回(在 Windows 上)。
或者,如果您有可用的 telnet(Windows Vista、2008 和 7 需要您选择它),您可以在命令提示符下(或 Linux 中的终端)键入以下内容来模拟几个阶段。
telnet google.com 80
GET /