40-撩课大前端-面试宝典-第四十篇

1.git fetch和git pull的区别?

git pull:相当于是从远程获取最新版本并merge到本地
 
git fetch:相当于是从远程获取最新版本到本地,不会自动merge

2.说说网络分层里七层模型是哪七层?

应用层:
应用层、表示层、会话层(从上往下)(HTTP、FTP、SMTP、DNS)

传输层(TCP和UDP)

网络层(IP)

物理和数据链路层(以太网)

每一层的作用如下:
物理层:
通过媒介传输比特,
确定机械及电气规范(比特Bit)
数据链路层:
将比特组装成帧和点到点的传递(帧Frame)
网络层:
负责数据包从源到宿的传递和网际互连(包PackeT)
传输层:
提供端到端的可靠报文传递和错误恢复(段Segment)
会话层:
建立、管理和终止会话(会话协议数据单元SPDU)
表示层:
对数据进行翻译、加密和压缩(表示协议数据单元PPDU)
应用层:
允许访问OSI环境的手段(应用协议数据单元APDU)

各种协议:
ICMP协议:
因特网控制报文协议。
它是TCP/IP协议族的一个子协议,
用于在IP主机、路由器之间传递控制消息。 
TFTP协议: 
是TCP/IP协议族中的一个用来在客户机与
服务器之间进行简单文件传输的协议,
提供不复杂、开销不大的文件传输服务。 
HTTP协议: 
超文本传输协议,
是一个属于应用层的面向对象的协议,
由于其简捷、快速的方式,
适用于分布式超媒体信息系统。 
DHCP协议: 
动态主机配置协议,
是一种让系统得以连接到网络上,
并获取所需要的配置参数手段。

3.说说mongoDB和MySQL的区别?

`MySQL`是传统的关系型数据库,
`MongoDB`则是非关系型数据库

mongodb以BSON结构(二进制)进行存储,
对海量数据存储有着很明显的优势。

对比传统关系型数据库,
NoSQL有着非常显著的性能和扩展性优势,
与关系型数据库相比,

MongoDB的优点有: 
①弱一致性(最终一致),更能保证用户的访问速度: 
②文档结构的存储方式,能够更便捷的获取数据。

4.讲讲304缓存的原理?

服务器首先产生ETag,
服务器可在稍后使用它来判断页面是否已经被修改。
本质上,
客户端通过将该记号传回服务器
要求服务器验证其(客户端)缓存。

304是HTTP状态码,
服务器用来标识这个文件没修改,
不返回内容,
浏览器在接收到个状态码后,
会使用浏览器已缓存的文件

客户端请求一个页面(A)。 
服务器返回页面A,并在给A加上一个ETag。 
客户端展现该页面,并将页面连同ETag一起缓存。 
客户再次请求页面A,
并将上次请求时服务器返回的ETag一起传递给服务器。 
服务器检查该ETag,
并判断出该页面自上次客户端请求之后还未被修改,
直接返回响应304(未修改——Not Modified)和一个空的响应体。

5.用node模拟客户端发起请求?

var http = require("http");
var request = http.request({
    host:"localhost",
    port:"8080",
    path:"/request",
    method:"post"
},function(res){
    res.on("data",function(chunk){
        console.log(chunk.toString());
    });
});
request.write("user=zhang&pass=111");
request.end("请求结束");//结束本次请求

你可能感兴趣的:(web前端面试题,前端,web全栈,JavaScript)