问题一:Http1.0和2.0的区别
HTTP1.0 为短连接;1.1 支持长连接但串行请求存在队头阻塞;HTTP2.0 基于单 TCP 连接实现多路复用,二进制帧传输、头部压缩,新增服务器推送。

问题二:Http2.0和3.0的区别
HTTP2.0 基于 TCP,只能解决应用层队头阻塞,TCP 丢包仍会阻塞整条连接;HTTP3.0 采用 UDP+QUIC 协议,彻底根除传输层队头阻塞,拥有 0‑RTT 握手、网络切换连接不中断的能力。

问题三:Http常见状态码
200 代表请求成功;304 命中缓存;4xx 是客户端错误,401 未认证、403 权限不足、404 资源不存在;5xx 属于服务器异常,500 代码报错,502 后端宕机,504 超时。

问题四:Http和Https的区别
HTTP 是明文传输,端口 80,不安全;HTTPS 在 HTTP 基础上增加 TLS 加密层,端口 443,依靠证书校验服务端身份,使用非对称 + 对称混合加密保障通信安全。

问题五:Get和Post的区别
GET 多用于查询,参数放在 URL,可缓存、暴露参数,具备幂等性;POST 用于提交数据,参数放请求体,无长度限制,默认不缓存,不幂等。

问题六:TCP和UDP区别
TCP 面向连接,通过三次握手建立连接,可靠有序传输,具备重传和拥塞控制,开销较高;UDP 无连接不可靠,无额外校验机制,传输速度快延迟低。

问题七:TCP三次握手,为什么三次,2和4次行不行
三次握手用来确认客户端与服务端双方收发能力正常;两次握手无法保证服务器收到客户端确认应答;四次握手服务端的 ACK 和 SYN 报文可以合并,多余一次报文,没有必要。

问题八:TCP的粘包和拆包
TCP 是字节流协议不存在报文边界,从而产生粘包与拆包;一般通过添加长度报文头、特殊分隔符、定长数据包等方案在应用层解决。

问题九:TCP如何保证可靠传输
TCP 依靠校验和检测损坏、序列号与 ACK 确认应答、超时重传保障数据不丢失;利用序列号实现去重与排序;通过滑动窗口流量控制、拥塞控制防止过载丢包。

问题十:TCP四次挥手,为什么四次
TCP 为全双工通信,客户端发起 FIN 关闭上行通道,服务端先回复 ACK,等剩余数据发送完成再发送 FIN 关闭下行通道,两个报文无法合并,所以需要四次挥手;客户端最后等待 2MSL。
