2024前端面试八股文-面经(最全、最详细、最实用、有这一篇就够了)——计算机网络前端八股文面经篇。
后台-插件-广告管理-内容页头部广告(手机) |
-
计算机网络分层:
- OSI七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
- TCP/IP四层:网络接口层、网络层(IP/ICMP)、传输层(TCP/UDP)、应用层(HTTP/FTP/WWW/DNS)
-
NDS工作原理和主要解析过程:
-
工作原理:
查询递归:当用户在浏览器中输入一个域名时,操作系统首先会向本地DNS解析器发出查询请求。如果本地解析器没有缓存该域名对应的IP地址,则会进行递归查询。
DNS递归解析:本地DNS解析器向根域名服务器发送查询请求,根域名服务器返回顶级域名服务器的地址。
顶级域名解析:本地解析器向顶级域名服务器发送查询请求,顶级域名服务器返回该域名的权威域名服务器的地址。
权威域名解析:本地解析器向权威域名服务器发送查询请求,权威域名服务器返回该域名对应的IP地址。
结果返回:本地解析器将获取到的IP地址返回给操作系统,操作系统将其缓存,并将IP地址返回给浏览器,使浏览器可以与目标服务器建立连接。
-
解析过程:
dns 解析:访问一个网站时,浏览器获得一个域名,通过 dns 服务将域名解析为 ip 地址。
tcp 连接:向 Web 服务器发起 tcp 连接请求。
发送 http 请求:浏览器向 Web 服务器发起http 请求,http 协议建立在 tcp 协议上的应用层协议,其本质是在建立起的 tcp连接中,按照 http 协议标准发送一个索要网页的请求。
处理请求并返回:服务器获取到客户端的 http 请求后,会根据请求中的内容来决定如何获取相应的文件,并将文件发送给浏览器。
浏览器渲染:浏览器根据响应开始显示页面,首先解析 html 文件构建 DOM 树,然后解析 CSS 文件构建渲染树,等渲染树构建完成后,浏览器开始布局渲染树并将其绘制到屏幕上。
断开连接:客户端和服务器断开连接。
-
-
用户输入网址到显示对应页面的全过程:
浏览器缓存 -> DNS 域名解析 -> URL 编码 -> 使用 HTTP 或者使用 HTTPS 协议发送请求
1 浏览器根据请求的 URL 交给 DNS 域名解析,找到真实 IP ,向服务器发起请求;
2 服务器交给后台处理完成后返回数据,浏览器接收⽂件( HTML、JS、CSS 、图象等);
3 浏览器对加载到的资源( HTML、JS、CSS 等)进⾏语法解析,建立相应的内部数据结构 (如 HTML 的 DOM);
4 载⼊解析到的资源⽂件,渲染页面,完成。
用户输入阶段
合成 URL:浏览区会判断用户输入是合法 URL,比如用户输入的是搜索的关键词,默认的搜索引擎会合成新的,如果符合url规则会根据url协议,在这段内容加上协议合成合法的url
查找缓存
网络进程获取到 URL,先去本地缓存中查找是否有缓存资源,如果有则拦截请求,直接将缓存资源返回给浏览器进程;否则,进入网络请请求阶段;
DNS 解析:
DNS 查找数据缓存服务中是否缓存过当前域名信息,有则直接返回;否则,会进行 DNS 解析返回域名对应的 IP 和端口号,如果没有指定端口号,http 默认 80 端口,https 默认 443。如果是 https 请求,还需要建立 TLS 连接;
建立 TCP 连接:
TCP 三次握手与服务器建立连接,然后进行数据的传输;(三次握手开喷)发送 HTTP 请求:
浏览器首先会向服务器发送请求行,它包含了请求方法、请求 URI 和 HTTP 协议的版本;另外还会发送请求头,告诉服务器一些浏览器的相关信息,比如浏览器内核,请求域名;服务器处理请求:
服务器首先返回响应行,包括协议版本和状态码,比如状态码 200 表示继续处理该请求;如果是 301,则表示重定向,服务器也会向浏览器发送响应头,包含了一些信息;页面渲染:
查看响应头的信息,做不同的处理,比如重定向,存储cookie 看看content-type的值,根据不同的资源类型来用不同的解析方式
-
HTTP方法
-
GET(读取数据具体信息,检索数据、有缓存,不安全,请求长度有限制)
HEAD(获取报头,与GET相同,但没有响应体,仅传输状态行和标题)
POST(向指定资源提交数据,数据被包含在请求体里、无缓存,数据长度无限制) eg.提交表单、上传文件
PUT(替换指定资源,没有就新增)
DELETE(请求服务器删除URL标识的数据)
CONNECT(服务器作为代理,代替用户访问)
OPTIONS(得到指定资源的HTTP请求方法)
PATCH(对已知资源进行局部更新)
TRACE(服务器返回自己收到的数据,用于测试和诊断)
-
GET与POST区别:
- GET提交的数据放在URL中,POST则不会。这是最显而易见的差别。这点意味着GET更不安全(POST也不安全,因为HTTP是明文传输抓包就能获取数据内容,要想安全还得加密)
- GET回退浏览器无害,POST会再次提交请求(GET方法回退后浏览器再缓存中拿结果,POST每次都会创建新资源)
- GET提交的数据大小有限制(是因为浏览器对URL的长度有限制,GET本身没有限制),POST没有
- GET可以被保存为书签,POST不可以。
- GET能被缓存,POST不能
- GET只允许ASCII字符,POST没有限制
- GET会保存再浏览器历史记录中,POST不会。
-
-
HTTP与HTTPS区别:
http 使用过程中存在安全性问题
使用明文通信,内容可能会被窃听
不验证通信方的身份,通信方的身份有可能遭遇伪装
无法证明报文的完整性,报文有可能遭篡改
https通过 ssl安全套接层 或tls安全传输层协议 的方式使 http 变成了安全的 https
https会数据加密,数字证书认证,通过 ssl/tls 报文摘要功能检验报文完整性
加密方式:
对称加密:加密和解密使用同一密钥
非对称加密:公钥加密,私钥解密
-
四次挥手: 确认双方得知,双方都没有要传输的数据
第一次挥手:客户端向服务端请求关闭连接
第二次挥手:服务端收到客户端的请求,并且告知客户端等我处理完毕数据
第三次挥手:服务端处理完毕数据,告知客户端,服务端数据处理完毕
第四次挥手:客户端得知服务端数据处理完毕,双方数据都处理完毕,可断开连接
-
三次握手: 确认客户端和服务端都可以正常发送接收数据
第一次握手:确认客户端可以正常发送数据
第二次握手:确认客户端可以正常发送数据,确认服务端可以正常接收数据
第三次握手:确认客户端可以正常发送+接收数据,确认服务端可以正常接收+发送数据
-
如何解决IPV4地址不够:
- IPv6协议:IPv6(Internet Protocol version 6)采用128位的地址空间,相比IPv4的32位地址空间大大增加了地址数量。
- 子网划分和地址分配策略:通过合理划分子网,并采用有效的地址分配策略,可以更有效地利用现有的IPv4地址。例如,使用CIDR(无类型域间选路)可以实现更精细的地址划分和分配。
-
Dos攻击和DDOS攻击:
-
DoS 攻击:通常由单个攻击者发起,通过向目标系统发送大量请求或特制的恶意数据包,使目标系统的资源耗尽,从而导致正常用户无法访问目标系统。常见的 DoS 攻击类型包括 SYN Flood、ICMP Flood、UDP Flood 等。
DoS 攻击的缺点是攻击者的IP 地址容易被识别,从而受到追踪和制裁。
-
DDoS 攻击:是 DoS 攻击的一种升级形式,它利用多个受控制的计算机(僵尸网络)同时发起攻击,使攻击更难以防御和追踪。DDoS 攻击可以同时从多个方向消耗目标系统的资源,导致目标系统瘫痪。由于涉及的攻击来源众多,DDoS 攻击的防御难度要大于DoS 攻击。
防御 DoS 和 DDoS 攻击的方法包括:
1.限制单个 IP地址的请求速率。
2.使用防火墙、入侵检测系统(IDS)和入侵预防系统(IPS) 等安全设备。
3.采用负载均衡技术分散请求压力。
4.与互联网服务提供商(ISP)合作,进行流量清洗和封锁恶意IP 地址。
-
-
跨域的解决办法: 同源策略—域名、协议、端口三个都相同
作用:
-
无法用js读取非同源的Cookie、LocalStorage 和 IndexDB
这个主要是为了防止恶意网站通过js获取用户其他网站的cookie等用户信息。
-
无法用js获取非同源的DOM
防止恶意网站通过iframe获取页面dom,从而窃取页面的信息。
-
jsonp:jsonp能实现跨域是利用了img、script和link标签自身的跨域能力。
-
-
常用的请求状态码:
-
500 内部服务器错误
Internal Server Error 500内部服务器错误,服务器遇到未知无法解决的问题。
-
404 请求错误——请求不存在的资源
Not Found 404 错误请求,因发送的请求语法错误,服务器无法正常读取。
-
403 禁止访问
Forbidden 403 禁止访问,客户端没有权利访问所请求内容,服务器拒绝本次请求。
-
200 请求成功
200 OK 请求成功,表示已经请求成功,默认情况下的状态码为200的响应就可以被缓存了。
-
301 永久重定向
Moved Permanently 301 永久移动,该状态码表示所请求的URI资源路径已经改变,新的URL会在响应的Location:头字段里找到。
-
302 临时重定向
Found 302临时移动,该状态码表示所请求的URI资源路径临时改变,并且还可能继续改变.因此客户端在以后访问时还得继续使用该URI.新的URL会在响应的Location:头字段里找到。
-
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |