不确定这是否是合适的论坛,但我想知道是否有任何资源讨论如何将浏览器的请求传递到服务器,然后将所需的信息传递回浏览器。具体来说,我想了解更多关于内部结构的信息 - 使用的协议,整个工作原理。谢谢!
答案1
浏览器从 URL 中提取域名(
superuser.com
例如https://superuser.com/posts/232820) 并要求操作系统将其转换为 IP 地址。操作系统会查询配置的名称解析方法。通常情况下,它会是内存缓存、本地
hosts
文件,最后DNS. (有些浏览器有自己的自己的缓存,并且一些操作系统支持除了 DNS 之外的更多协议。)如果在本地找不到该名称,操作系统会向配置的 DNS 服务器(在类 Unix 中,该地址为
/etc/resolv.conf
)发送 DNS 查询,UDP 端口 53。DNS 服务器响应一个或多个 IP 地址,以供浏览器尝试连接。
浏览器通过 TCP 端口 80 连接到提供的 IP 地址。
浏览器发送一个HTTP 请求带有包含要检索的文件的标题,以及有关浏览器功能的其他信息、此域的任何 cookie 和其他元信息。
服务器(使用 Apache 等软件)查找文件并读取它。
服务器将内容(HTML、图片、JavaScript 代码等)发送到 Web 浏览器。首次请求时,这通常只是一个 HTML 块。
浏览器解析请求返回的 HTML,以获取更多资产——例如 JavaScript、CSS、图像等。
浏览器发出对其他资产的后续请求。对同一服务器的请求不需要查找 IP 地址。通常,现有的 TCP 连接是重用, 也。
浏览器处理内容并将其显示给用户。
以下是整个过程的简要图表(但请注意,编号是不是我在这里要解释一下这个问题(与上面的解释相同)。我认为它对整个过程提供了一个很好的概述。