第40篇
1)git fetch和git pull的区别
git pull:从远程获取最新版本并merge到本地。
git fetch:从远程获取最新版本到本地,不会自动merge。
2)说说网络分层里七层模型是哪七层?
应用层:
应用层、表示层、会话层(从上往下)(HTTP、FTP、SMTP、DNS);
传输层(TCP、UDP)
网络层(IP)
物理和数据链路层(以太网)
每一层的作用:
1、物理层:通过媒介传输比特,确定机械及电气规范
2、数据链路层:
将比特组装成帧和点到点的传递(帧Frame)
3、网络层
负责数据包从源到宿的传递和网际互连(包Packet)
4、传输层
提供端到端的可靠报文传递和错误恢复(Segment)
5、会话层
建立、管理和终止会话(会话协议数据单元SPDU)
6、表示层
对数据进行翻译、加密和压缩(表示协议数据单元PPDU)
7、应用层
允许访问OSI环境的手段(应用协议数据单元APDU)
各种协议:
ICMP协议:因特网控制报文协议,它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。
TFTP协议:是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂,开销不大的文件传输服务
HTTP协议:超文本传输协议:是一个属于应用层的面向对象的协议。由于其简捷、快速的方式,适用于分布式超媒体信息系统
DHCP协议:动态主机配置协议,是一种让系统得以连接到网络上,并获取所需要的配置参数手段。
3)说说mongoDB和MySQL的区别
MYSQL是传统的关系型数据库,MongoDB则是非关系型数据库
mongodb以BSON结构(二进制)进行存储,对海量数据存储有着很明显的优势。
对比传统关系型数据库,NoSQL有着非常显著的性能和扩展性优势
与关系型数据库相比,MongoDB的优点有:
【1】弱一致性(最终一致),更能保证用户的访问速度。
【2】文档结构的存储方式,能够更便捷的获取数据。
4)讲讲304缓存的原理?
服务器首先产生Etag,服务器可在稍后使用它来判断页面是否已经被修改,本质上客户端通过将该记号传回服务器,要求服务器
验证其(客户端)缓存。
304是HTTP状态码,服务器用来标识这个文件没修改,不返回内容,浏览器在接受到这个状态码后,会使用浏览器已缓存的文件。
客户端请求一个页面(A), 服务器返回该页面A,并在给A加上一个ETag,客户端缓存该页面,并将页面连同ETag一起缓存。
客户再次请求页面A,并将上次请求时服务器返回的ETag一起传递给服务器。
服务器检查该ETag,并判断出该页面自上次客户端请求之后还未被修改,直接返回响应304(未修改——Not Modidied)和一个空的响应体。
5)用node模拟客户端发起请求?
1 var http = require("http"); 2 var request = http.request({ 3 host: "localhost", 4 port: "8080", 5 path: "/request", 6 method: "post" 7 }, function(res) { 8 res.on("data", function(chunk) { 9 console.log(chunk.toString()); 10 }); 11 }); 12 13 request.write("user=zhang&pass=111"); 14 request.end("请求结束");