一、局域网内两台设备交换ip过程
解决方法:
A:192.168.1.100
B:192.168.1.200
先把A的ip改为192.168.1.101
接着把B改为:192.168.1.100
再把A改为:192.168.1.200
补充:局域网特点:
1.有限的地理范围
2.通常多个站共享一个传输介质
3.具有较高的数据传播速率
4.具有较低的时延
5.具有较低的误码率
6.有限的站数
二、进程线程区别 进程通讯方式
解决方法:
1.进程线程区别
(1)定义不一样,进程时执行中的一段程序,而一个进程中执行中的每个任务即为一个线程
(2)一个线程只可以属于一个进程,但一个进程能包括多个线程
(3)线程无地址空间,它包括在进程的地址空间
(4)线程的开销或代价比进程的小
2.进程通讯方式
(1)管道pipe,命名管道FIFO,消息队列messagequeue,共享存储,信号量,套接字,信号;
补充:1.管道:管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。
2.命名管道:有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。
3.消息队列:消息队列是由信息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。
4.共享存储:共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但由多个进程都可以访问。共享内存是最快的IPC方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号量,配合使用,来实现进程间的同步和通信。
5.信号量:信号量是一个计数器,可以用来控制多个进程对共享资源的访问。
6.套接字:套接口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及期间的进程通信。
7.信号:信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。
三、https四次握手
1.http与htteps有什么区别
http协议传输的数据都是未加密的,也就是明文,因此使用http协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了ssl协议用于对http协议传输的数据进行加密,从而产生了https。
简单来说:https协议是由ssl+http协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
ssl四次握手过程
(1)客户端请求建立ssl链接,并向服务端发送一个随机数-Client random和客户端支持的加密方法,比如RSA公钥加密,此时是明文传输。
(2)服务端回复一种客户端支持的加密方法、一个随机数-Server random、授信的服务器证书和非对称加密的公钥。
(3)客户端收到服务端的回复利用服务端的公钥,加上新的随机数-Premaster secret 通过服务端下发的公钥及加密方法进行加密,发送给服务器
(4)服务端收到客户端的回复,利用已知的加解密方式进行解密,同时利用Client random Server random和Premaster secret通过一定的算法生成http链接数据传输的对称加密key-session key。
此后的http链接数据传输及通过对称加密方式进行加密传输。
四、http1 和http2区别
1.什么是http2.0
是http协议的第二个主要版本,使用的是万维网。http2.0是http协议自1999年http1.1发布后首个更新,主要基于spdy协议(是谷歌开发的基于TCP的应用层协议,用以最小化网络延迟,提升网络速度,优化用户的网络使用体验)
2.与http1.1.相比,主要区别包括
(1)http2采用二进制而非文本格式
(2)http2是完全多路复用,而非有序并阻塞的--只需一个链接即可实现并行
(3)使用报头压缩,http2降低了开销
(4)http2让服务器可以将响应主动“推送”到客户端缓冲中
五、react通讯方式 redux
1.redux概念:
是一个独立专用于做状态管理的js库,不是react插件库
他可以用在react,angular,vue等项目中,但基本与react配合使用
作用:集中式管理react应用中多个组件共享的状态
2.store\action\reducer
store:是redux提供的唯一数据源,它存储了整个应用的state,并且提供了获取state的方法,即store.getState(),store是只读的。
action是一个用于描述已发送事件的普通对象,但是单单讲了你干的事情,我们并不知道你干的这件事产生了什么牛逼效果,于是有了一个专门负责描述某个行动对应产生某种效果的机构,叫reducer。
reducer是一个接收state和action,并返回新的state的函数(必须是纯函数,redux规定)
3.使用方法
首先必须先定义好我们即将做的事情,也就是定一个action,跟着,我们需要相对应地补充我们做的这件事要怎么影响数据源,于是我们根据这个action补充了一个reducer,最后我们触发这个action:store.dispatch(action),数据源就会根据reducer定义好的规则来更新自己。
4.什么情况需要redux
(1)某个组件的状态,需要共享
(2)某个状态需要在任何地方都可以拿到
(3)一个组件需要改变全局状态
(4)一个组件需要改变另一个组件的状态
相关博客:https://www.pianshen.com/article/646071298/
六、webpack一些loader
1.概念
1.webpack是属于模块化方案,他能让任意类型的文件都能运行在浏览器中
2.loader用于对模块化的源代码进行转换。loader可以使你在import 或“加载”模块时预处理文件。
2.常用的loader
(1)style-loader 将css添加到DOM的内联样式标签style里
(2)css-loader 允许将css文件通过require的方式引入,并返回css代码
(3)less- loader 处理less
(4)sass-loader 处理sass
(5)postcss-loader 用postcss来处理css
(6)autoprefixer-loader 处理css3属性前缀,已被弃用,建议直接使用postcss
(7)file- loader 分发文件到output目录并返回相对路径
(8)url-loader 和 file-loader 类似,但是当文件小于设定的limit时可以返回一个data url
(9)html-minify-loader 压缩html
(10)babel-loader 用babel来转换ES6文件到ES5
3.loader特性
(1)从右到左地取值(evaluate)/执行(execute)
(2)支持链式传递,链中的每个loader会将转换应用在已处理过的资源上
(3)也可以内联显示指定
(4)可以是同步,也可以是异步的
(5)运行在node.js中,并且能够执行任何node.js能做到的操作
(6)可以通过options对象配置
(7)除了常见的的通过package.json的main来将一个npm模块导出loader,还可以在module.rules中使用loader字段直接引用一个模块
(8)能够产生额外的任意文件
https://www.jianshu.com/p/d38df51f9c1e
浙公网安备 33010602011771号