web面试(一)
- 整理面试知识,学习笔记
- 认识自身不足,弥补缺陷
1. webpack按需加载原理
2. react和jquery的差异
-
React.js的提供了一整套
Virtual DOM
,所有的操作都在这个Virtual DOM上,只有当事件发生的时候,state
才发生改变,之后,React自动调用render()
来更新UI- React中把各个UI组件独立出来,有利于提高UI组件的复用率同时降低各个UI组件的耦合
-
jQuery只是一个工具库,基本思路是: 用选择器选择DOM元素,并对DOM元素监听,然后在事件监听函数里进行相应的处理
3. TCP三次握手
-
三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息.在socket编程中,客户端执行connect()时。将触发三次握手。
-
形象比喻(引用自) :
两个素未谋面的人遇见了,一个人(client端)想认识对方(server端)..于是那个人(client端)主动向对方(server端)挥手(意味着接下来有握手的冲动,即是带SYN标志的TCP报文到服务器),而对方(server端)也向那个人(client端)挥手(对刚才客户端SYN报文的回应;同时又标志SYN给客户端,询问客户端是否准备好进行数据通讯),这时候对方(server端)是否愿意握那个人(client端)的手(取决于防火墙等定义的规则决定),那个人(client端)确认了对方(server端)愿意,才能走过去握手(客户必须再次回应服务段一个ACK报文),这样就达到三次握手(建立连接)的原理;
4. MVVM (参考链接)
5. V8渲染引擎怎么解析js
-
简单来说,JavaScript 引擎会加载你的源代码,把它分解成字符串(又叫做分词),再 把这些字符串转换 成编译器可以理解的字节码,然后执行这些字节码。
-
Google 的 V8 引擎 是用 C++ 编写的,它也能够编译并执行 JavaScript 源代码、处理内存分配和垃圾回收。它被设计成由两个编译器组成,可以把源码直接编译成机器码:
6. 移动端性能优化
7. 并发请求,合并请求
8. redux实现原理
9. webpack打包机制
10. 了解cookie和session工作机制
HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的工作原理。
- Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。
Cookie: 中文译为小甜饼,由Netscape公司发明,是最常用的跟踪用户会话的方式。Cookies是一种由服务器发送给客户端的片段信息,存储在客户端的内存或者硬盘上,在客户随后对该服务器的请求中发回它。其实主要就是把服务器为客户端分配的session ID保存在Cookies中,每次发送请求时把Cookies附加到请求对象中一起发过去,服务器得到这个唯一的session ID,从而可以唯一的标识一个客户端
Cookie cookie = new Cookie("username","helloweenvsfei"); // 新建Cookie
cookie.setMaxAge(Integer.MAX_VALUE); // 设置生命周期为MAX_VALUE
response.addCookie(cookie); // 输出到客户端
//如果maxAge属性为正数,则表示该Cookie会在maxAge秒之后自动失效。浏览器会将maxAge为正数的Cookie持久化,即写到对应的Cookie文件中。无论客户关闭了浏览器还是电脑,只要还在maxAge秒之前,登录网站时该Cookie仍然有效。下面代码中的Cookie信息将永远有效