TCP和UDP的区别是什么
- TCP
- 面向连接 (网络系统需要在两台计算机之间发送数据之前先建立连接的一种特性)
- 连接稳定 不丢包 不重复 适用于大数据传输
- tcp是一对一连接
- UDP
- 无连接(不建立链接也可以进行传输)
- 连接不可靠,会出现丢包现象
- 一对一 、一对多
TCP的三次握手和四次挥手
- 进行TCP (协议) 连接,三次握手 (根据上一步请求回来的 ip 地址,去联系服务器)
- 第一次握手
- 第二次握手哦
- 第三次握手
- 发送请求(请求报文)
- 得到响应(响应报文)
- 浏览器开始解析HTML
- 预解析: 将所有外部的资源,发送请求出去
- 解析HTML, 生成DOM树
- 解析CSS,生成css树
- 合并成一个render树
- js 是否操作了DOM或样式
- 有: 进行重回重排(1. 尽量避免,2.最小化重绘重排)
- 没有: null
- 最终展示界面
- 断开TCP连接,四次挥手(确保数据的完整性)
- 第一次挥手
- 有浏览器发给服务器 — 我的东西接收完了,你关闭了
- 第二次挥手
- 有服务器发给浏览器 — 我还有一些东西没有接收完,等一会,接收完了告诉你/ 如果接收完了,需要验证完整性
- 第三次挥手
- 第四次挥手
HTTP 和 webscoket
- HTTP
- 超文本传输协议
- 一次请求完成后链接立即终端
- 服务器被动向客户端发送请求
- HTTP1.1 中的keep-alive,可以将多个请求合并为一个
- webscoket
- 持续链接传输方式、
- webscoket是HTML5中的新提出的方案,基于HTTP协议,借用了HTTP完成一部分握手后和服务端建立持久连接。
- 服务端可以主动向客户端发送信息
HTTP和HTTPS
- HTTP
- HTTPS
- HTTP安全版
- 加入了SSL安全通道
- 缺点
- 不如HTTP高效,页面加载会延长50%,耗电量会增加12%-15%
- SSL证书需要一定的费用,安全级别越高费用越贵
- SSL证书需要绑定IP,不能同一个IP绑定多域名,IPV4资源支持不了这种消耗
HTTP1.1和HTTP2.0
- HTTP1.1
- 先进仍是主流的传输协议
- 基于HTTP1.0中增加了keep-alive,可以进行连续复用
- 解析是基于文本的,体积大
- HTTP2.0
- HTTP2.0是基于HTTPS的,具有天然的安全特性
- 二进制格式,2.0将所有传输信息分割为更小的帧,并对其进行二进制编码
- 多路复用,相当于连续复用的增强;可支持流的优先级,允许客户端告诉服务器哪些内容是更优先的资源,可以有优先传输
- 服务端推送,HTTP2.0支持服务端推送,客户端建立连接后想后端一个请求的url数组,服务端拿到url数组后可主动想客户端进行推送