Vue 面试题
1.Vue 双向绑定原理
2.描述下 vue 从初始化页面–修改数据–刷新页面 UI 的过程?
3.你是如何理解 Vue 的响应式系统的?
4.虚拟 DOM 实现原理
5.既然 Vue 通过数据劫持可以精准探测数据变化,为什么还需要虚拟 DOM 进行 diff 检测差异?
6.Vue 中 key 值的作用?
7.Vue 的生命周期
8.Vue 组件间通信有哪些方式?
9.watch、methods 和 computed 的区别?
10.vue 中怎么重置 data?
11.组件中写 name 选项有什么作用?
12.vue-router 有哪些钩子函数?
13.route 和 router 的区别是什么?
14.说一下 Vue 和 React 的认识,做一个简单的对比
15.Vue 的 nextTick 的原理是什么?
16.Vuex 有哪几种属性?
17.vue 首屏加载优化
18.Vue 3.0 有没有过了解?
19.vue-cli 替我们做了哪些工作?
如果你觉得对你有帮助,可以戳这里获取:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
wireshark抓包过滤条件:
(ip.src == 127.0.0.1) && (tcp.srcport == 27015 || tcp.dstport == 27015) && (tcp.flags.push == 1)
四、TCP连接
三次握手Three-way Handshake
一个虚拟连接的建立是通过三次握手来实现。
- (B) --> [
SYN
] --> (A)
假如服务器A和客户机B通讯. 当A要和B通信时,B首先向A发一个SYN
(Synchronize) 标记的包,告诉A请求建立连接.。
注意⚠️: 一个 SYN
包就是仅SYN
标记设为1的TCP包(参见TCP包头Resources)。认识到这点很重要,只有当A受到B发来的SYN包,才可建立连接,除此之外别无他法。因此,如果你的防火墙丢弃所有的发往外网接口的SYN包,那么你将不 能让外部任何主机主动建立连接。
2. (B) <-- [SYN/ACK
] <–(A)
接着,A收到后会发一个对SYN包的确认包(SYN/ACK
)回去,表示对第一个SYN
包的确认,并继续握手操作。
注意⚠️: SYN/ACK
包是仅SYN 和 ACK 标记为1的包。
3. (B) --> [ACK] --> (A)
B收到SYN/ACK
包,B发一个确认包(ACK
),通知A连接已建立。至此,三次握手完成,一个TCP连接完成。
注意⚠️: ACK包就是仅ACK 标记设为1的TCP包。需要注意的是当三此握手完成、连接建立以后,TCP连接的每个包都会设置ACK位。
这就是为何连接跟踪很重要的原因了。没有连接跟踪,防火墙将无法判断收到的ACK包是否属于一个已经建立的连接。一般的包过滤(Ipchains)收到ACK包时,会让它通过(这绝对不是个好主意)。而当状态型防火墙收到此种包时,它会先在连接表中查找是否属于哪个已建连接,否则丢弃该包。
4.1 三次握手示例
通过TCP三次握手:SYN-SYN ACK-ACK,建立连接
以抓取443为例(加密,端口不一定为443):
先:DNS请求
DNS请求:
DNS response:
客户端发起TCP三次握手: