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("请求结束");//结束本次请求
网友评论