2020年大前端大厂面试准备方案 - 网络请求

2021年11月24日 阅读数:11
这篇文章主要向大家介绍2020年大前端大厂面试准备方案 - 网络请求,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

请说一下从输入网址到得到页面的网络请求的过程?

  1. 解析域名获取对应IP地址(DNS解析)
  2. 创建TCP链接(3次握手)
  3. 浏览器发出HTTP请求(HTTP1.1/2/HTTPS)
  4. 服务器接收请求,根据地址路径找到返回资源
  5. 释放TCP链接(4次挥手)
  6. 浏览器解析HTML(渲染机制)

分析:展开这个问题,基本就是一棵树,整个过程的简明说法以下,每一个过程又能拓展出知识点,且都是大知识点,下面能继续拆解多个知识点。前端

DNS解析

DNS解析.jpg


:DNS是什么,简单描述一下DNS解析过程?
:DNS中文叫域名系统,是一个由分层的DNS服务器实现的分布式数据库,做用是将用户提供的主机名解析为IP地址面试


插问:什么叫分布式数据库,DNS为何要设计成分布式数据库?
:分布式简单来说就是由不一样地点的多台计算机,经过网络链接共同组成的大型数据库。由于DNS是一个全球共用的大型服务,若是设计成集中型的服务,该服务器一出故障,全世界的网络都会挂掉。另外,通讯容量,远距离传输,维护成本都是大问题。因此,DNS被设计成了一个分布式、层次数据库chrome


接答DNS解析过程:经过递归方式按顺序依次从浏览器缓存,hosts文件,本地DNS服务器,isp网络运营商缓存中查找域名IP,若是仍没找到,本地DNS服务器开始按层次(www.baidu.com. 域名从右往左,com后面的点表明根域名,由于每一个域名都有根域,因此域名在使用过程当中被省略),从根域服务器、顶级域服务器、次级域服务器、三级域服务器进行迭代查询,最终会找到域名映射的IP。数据库


:若是服务部署在多台机器上,DNS就会返回多个IP吗?
:DNS服务器通常会有一些策略从速度上,负载均衡上筛选出一个或多个IP返回。客户端若是拿到多个IP,通常是取第一个用,第一个不通用第二个。segmentfault


:除了IP地址,还有哪些DNS的资源信息?
:DNS的资源记录(又叫RR)包含这几个信息。跨域

1. 主机的IP地址
1. TTL生存周期:表示DNS缓存的过时时间
2. class字段:表示网络类型,值固定是IN(internet)
3. type:资源记录类型。
4. rdata:资源记录数据,域名关联的信息数据。

接问:说说你理解的TTL和DNS缓存
:简单说,TTL就是本地DNS服务器对IP的缓存时间。可是DNS获取的过程里,浏览器,本地服务器,ISP(网路运营商)都会对DNS进行缓存,而且不参考TTL值。好比chrome默认缓存60秒,网络运营商有多是1个小时。这一个小时内若是域名有改动,有DNS缓存的用户就访问不通。若是有IP地址能访问,可是域名访问不通的状况时,能够清理一下DNS缓存,也能够改一下本地DNS服务器试试。浏览器


接问:说的不错,那还能说说资源记录类型是什么吗
:这个比较底层了,简单说就是DNS数据库记录的七大资源信息。常见的好比A记录就是存储IP和域名的映射关系,而CNAME记录就是存储一个域名和另外一个域名的的映射关系。CDN加速的原理就包括CNAME的用法。缓存


:本地DNS与主域名服务器通讯用的什么协议?
:用的UDP协议,不过DNS分为主服务器和辅助服务器,两服务器通讯叫作区域传送,这时候用的是TCP协议。安全


:域名解析为何用UDP?区域复制(即区域传送)为何用TCP?
:这是根据不通场景的特色配置协议方式。UDP传输较快,不须要握手挥手那些操做,可是UDP协议内容长度有512字节限制,可是域名不会这么长,因此UDP的特性知足这个场景。而区域复制是从主服务器抓内容,TCP的可靠性更高,另外内容有可能会过长,UDP可能会不够用。服务器


:UDP为何会有长度限制,TCP没有?
:你这还算前端面试吗?


拓展阅读

DNS有没有什么安全问题,如何解决?

2019 iOS面试题-网络相关之DNS

DNS缓存是什么,有没有遇到过公司网站忽然打不开了?

一次dns缓存引起的惨案

CNAME是什么?

请求方式

跨域请求