一个url的执行历程
当我们用浏览器输入一个
URL
后,是如何请求到页面的呢?这也是计算机网络面试必问的一个问题。
首先,打开浏览器输入一个网址:
然后…
1.查找DNS缓存
DNS就像是电话簿,存放着名字(URL)和其对应的电话(IP地址)
DNS(Domain Name System)
是一个分布式的数据库,它用于维护网址 URL `到其 `IP 地址
的映射关系。在互联网中,IP 地址
是计算机所能够理解的一种地址,而 DNS
的这种别名地址是我们人类能够理解和记忆的地址
,DNS就负责把人类记忆的地址映射成计算机能够理解的地址,每个 URL 都有唯一的 IP 地址进行对应。
如果上面四个步骤中都不存在 DNS 记录,那么就表示不存在 DNS 缓存,这个时候就需要发起 DNS 查询,以查找目标网址( www.csdn.net)的 IP 地址。
由于 DNS 的设计原因,本地 DNS 可能无法给我提供正确的 IP 地址,那么它就需要在互联网上搜索多个
DNS 服务器,来找到网站的正确 IP 地址。
- 因为 DNS 是分布式域名服务器,每台服务器只维护一部分 IP 地址到网络地址的映射,没有任何一台服务器能够维持全部的映射关系。
- 大致来说有三种 DNS 服务器:
根 DNS 服务器
、顶级域(Top-Level Domain,TLD)DNS 服务器
和权威DNS 服务器
。
三种DNS:
- 根DNS服务器: 根域名服务器提供TLD服务器的IP地址。
- **TLD DNS服务器:**对于每个顶级域名比如:
org、com、net、edu...
和所有国家级域名ca、uk、fr
都有TLD服务器或服务器集群。TLD服务器提供了权威DNS服务器的IP地址。 - **权威DNS服务器:**在因特网上具有公共可访问的主机,这些主机的组织机构必须提供可供访问的DNS记录,这些记录将这些主机的名字映射为IP地址。一个组织机构的权威DNS服务收藏了这些DNS记录。
❓ 如何发起DNS查询呢?
负责开始 DNS 查找的介质叫 DNS 解析器
,它一般是 LSP
维护的 DNS 服务器,它的主要职责就是通过向网络中其他 DNS 服务器询问正确的 IP 地址。
2.浏览器与服务器建立TCP连接
经过DNS 和 ARP 查找流程后,路蓝旗收到一个目标服务器的IP和MAC地址,然后浏览器将会和目标服务器简历连接来传输信息。
TCP的连接建立需要经过TCP/IP
的三次握手
,三次握手的过程其实就是浏览器和服务器交换SYN 同步
和 ACK 确认消息
的过程。
3.浏览器发送HTTP请求到Web服务器
TCP 连接建立完成后,就开始直接传输数据了。此时浏览器可能发送GET/POST…请求。