URL 如何知道它需要到达哪个服务器?

URL 如何知道它需要到达哪个服务器?

我想知道当我们输入这样的 URL 时会发生什么http://www.mydomain.com?它如何知道去哪里获取 mydomain.com 的页面?这一切是如何发生的?

答案1

URL 只是一个地址,一个引用。因此,事情的发生过程如下:

  1. 用户在浏览器中输入 URL。键盘驱动程序会处理此操作,它会将键盘事件发送到浏览器,然后浏览器会通过使用输入的字符更新地址栏来做出响应
  2. 浏览器按照以下定义解析 URL 的各个部分RFC 3986
  3. 浏览器选择主机部分,它将使用内部解析器库来查找 IP 地址。最常用的解析器是DNS。为此,应用程序内部映射的解析器库将在为客户端计算机配置的 DNS 服务器上的端口 53 上发出 UDP 请求。DNS 服务器将在内部缓存中搜索请求,如果请求已过期或丢失,它将发出递归请求以尝试查找地址。
  4. 浏览器通过默认端口(TCP/80)连接到 HTTP 服务器。
  5. 浏览器发送 GET 请求,并根据 HTTP/1.1 指定 HOST 标头(参见RFC 2616
  6. http 服务器将解析该请求,并将请求发送到请求中指定的虚拟主机
  7. 应用程序返回生成的内容(通常是HTML)到浏览器
  8. 浏览器解析结果,生成一些JavaScript/DOM 事件并呈现页面(例如壁虎FireFox 中的引擎)。

这是一个非常简明扼要的解释。我不谈论 SSL、压缩、语言和字符编码协商、身份验证、CGI、管道和保持活动。

相关内容