常见的HTTP状态码分哪几类HTTP状态码由三位数数字组成分为五大类1xx表示信息相应2xx表示成功3xx表示重定向4xx表示客户端错误5xx表示服务器错误HTTP和HTTPS的主要区别是什么HTTP和HTTPS的核心区别在于安全性HTTP明文传输数据容易被窃听篡改和冒充而HTTPS在HTTP基础上增加了SSL/TLS加密层通过加密防止窃听、校验机制防止篡改数字证书防止冒充从而保障通信安全。说说TCP三次握手TCP三次握手就是客户端和服务器通过发送和确认三个包保证双方收发能力正常且同步初始化序列号并建立可靠连接的过程。第一次握手是客户端发给服务器一个SYN报文并且携带一个随机生成的初始化序列号。第二次我是是服务端收到SYN后回发一个SYNACK报文确认号是客户端序列号1同时自己也生成一个初始化序列号。第三次是客户端收到SYNACK后发送一个ACK报文确认号是服务端序列号1这时候客户端就处于已建立连接状态服务端收到ACK后也处于连接状态就正式连接了。TCP和UDP的主要区别TCP是面向连接、可靠的字节流协议保证数据不丢不乱、不错适用于准确性要求高的场景如文件传输和网页浏览UDP是无连接、不可靠的数据报协议传输速度快适合对实时性要求高、能容忍少量丢包的场景如视频通话和在线游戏。TCP为什么会粘包怎么处理因为TCP是面向字节流的协议没有消息边界概念。数据以字节流形式传输发送缓冲区大小限制Nagle算法优化小包、MTU限制分片等都会导致数据在传输过程中被拆分或合并从而产生粘包。主要有三种方法1.定长消息规定每条消息固定长度不足补空2.分隔符用特殊字符分隔消息3.长度字段内容消息头中包含内容长度接收方先读长度再读对应字节数。其中第三个中最常用且灵活。UDP为什么没有粘包问题UDP是面向数据报的协议每个数据报都有明确的边界其头部包含长度字段操作系统能准确知道每个报文的长度因此接收方可以按报文单位读取天然保持消息边界。TCP四次挥手的过程TCP四次挥手是断开链接过程1.客户端发送FIN包进入FIN_WAIT_1状态2.服务端回复ACK客户端进入FIN_WAIT_2状态3.服务端发送FIN包进入LASK_ACK状态4.客户端回复ACK进入TIME_WAIT状态等待2MSL后关闭服务端收到ACK后立刻关闭。为什么TCP建立连接是三次握手而断开连接需要四次挥手因为TCP是全双工通道断开需要双方各自独立关闭发送通道当客户端发送FIN后服务端可能还有数据要发送因此必须先回ASK等等数据发送完后在发送自己的FIN导致无法合并通常需要四次。而建立连接时SYN和ASK可以合并发送。第四次挥手后客户端为什么要等待2MLS才真正关闭等待2MSL是为了确保服务端能收到最后一次ACK丢失可重传FIN使本次连接的所有网络报文都消失避免与新建连接的报文混淆。TCP/IP四层模型是什么TCP/IP四层模型是实际互联网使用的网络分层架构分为网络接口层网络层传输层和应用层。网络接口层负责在物理网络上收发数据帧网络层核心是IP协议负责数据报的路由和转发传输层提供端到端通信TCP实现可靠传输UDP提供无连接的快速传输应用层包含各种高层协议如HTTP,FTP、DNS等直接为应用程序提供服务。OSI七层模型是什么物理层数据链路层网络层传输层会话层表示层应用层。