持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第29天,点击查看活动详情
浏览器输入一个网址,具体发生了什么?
1.对URL进行DNS(域名系统)解析操作,根据DNS解析的结果查找服务器IP地址
2.通过IP与ARP(地址解析协议——根据IP获取物理地址),找到服务器,三次握手建立连接
3.浏览器生成HTTP报文,发送HTTP请求,等待服务器响应
4.服务器处理请求,并返回给浏览器
5.若HTTP使用短连接,则关闭TCP连接(长连接则保持连接)
6.浏览器根据收到的静态资源进行页面渲染
7.页面显示完成后,浏览器发送异步请求
8.浏览器关闭TCP连接(长连接)
DNS
DNS:基于UDP的应用层协议,功能是根据用户输入的域名,解析出该域名对应的IP地址,从而给客户端访问。
递归方式:
-
客户机发出查询请求,在本地计算机缓存查找,若没有找到,就会将请求发送给本地dns服务器
-
本地域名服务器会在自己的区域里面查找,找到即根据此记录进行解析
-
本地服务器没有找到客户机查询的信息,就会将此请求发送到根域名dns服务器
-
根域名服务器查找对应的顶级域名服务器
-
顶级域名服务器查找对应的权限域名服务器
-
权限域名服务器查找到对应的IP地址,并将该地址返还给主机
递归与迭代相结合:
-
客户机发出查询请求,在本地计算机缓存查找,若没有找到,就会递归查询将请求发送给本地DNS服务器
-
本地域名服务器迭代查询根域名服务器,根域名服务器返回对应的顶级域名服务器地址
-
本地域名服务器查询顶级域名服务器,顶级域名服务器返回对应的权限域名服务器
-
本地域名服务器查询权限域名服务器,权限域名服务器返回相应的IP地址
-
本地域名服务器将IP地址返回给本地主机进行解析
为了提高DNS查询效率,并减轻服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛使用了高速缓存,用来存放最近查询过的域名以及从何处获得域名映射信息的记录。