1.TCP和UDP的区别
- TCP 是面向连接的,udp 是无连接的即发送数据前不需要先建立链接。
- TCP 提供可靠的服务。也就是说,通过 TCP 连接传送的数据,无差错,不丢失,不重复,且按序到达; UDP 尽最大努力交付,不保证可靠交付。
- 面向连接,不会丢失数据因此适合大数据量的交换。
- TCP 是面向字节流,UDP 面向报文,并且网络出现拥塞不会使得发送速率降低(因此会出现丢包,对实时的应用比如 IP 电话和视频会议等)。
- TCP 只能是 1 对 1 的,而UDP 支持 1 对 1,1 对多。
- TCP 的首部较大为 20 字节,而 UDP 只有 8 字节。
- TCP 是面向连接的可靠性传输,而 UDP 是不可靠的。
2.js中的堆和栈,栈和队列有什么区别
堆:队列优先,【先进先出】;由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
栈:【先进后出】;动态分配的空间 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。
栈和队列的区别:
- 栈只允许在表尾一端进行插入和删除,队列只允许在表尾一端进行插入,在表头一端进行删除。
- 栈是先进后出,队列是先进先出。
3.http和https的区别
http:
- 明文传输,
- 数据未加密,
- 安全性较差,
- 响应速度比https快,
- HTTP使用TCP三次握手建立连接
- 只有3个包
https: - 通过(SSL+HTTP)数据传输,
- 过程加密,
- 安全性较好
- 一共12个包,除HTTP三个以外,需加上ssl握手的9个一共12 个包
- 需要申请证书,需要一定费用
- 更耗费服务器资源,是建立在SSL/TLS之上的HTTP协议
4.px,em,rem,vw,vh区别
px:px就是pixel的缩写,意为像素
em:参考物是父元素的font-size,具有继承的特点,本身有font-size,按照自身计算
vw: css3新单位,viewpoint width的缩写,视窗宽度,1vw等于视窗宽度的1%。 举个例子:浏览器宽度1200px, 1 vw = 1200px/100 = 12px
vh: css3新单位,viewpoint height的缩写,视窗高度,1vh等于视窗高度的1%。 举个例子:浏览器高度900px, 1 vh = 900px/100 = 9px。
5.defer和async的区别
都是改变脚本执行的行为
defer:延迟,表示脚本会被延迟到整个页面都解析完毕后再运行。
因此在 script 元素中设置defer属性,相当于告诉浏览器立即下载,但延迟执行。执行按按照先后顺序
async: 异步,外部脚本文件,并告诉浏览器立即下载文件,适用于互不干扰的脚本
阻塞,出现白屏问题一般也可以用defer和async进行处理
6. WebSocket和HTTP有什么区别
相同点
- 都是一样基于TCP的,都是可靠性传输协议
- 都是应用层协议
不同点
- WebSocket是双向通信协议,模拟Socket协议,可以双向发送或接受信息。HTTP是单向的
- WebSocket是需要握手进行建立连接的(相对HTTP来说,WebSocket是一种持久化的协议。它会基于HTTP协议,来完成一部分握手,HTTP握手部分完成,协议升级为WebSocket