HTTP版本的区别变化
HTTP1.1相较于HTTP1.0,多了长连接,可以支持同一个HTTP会话的复用,避免了频繁的建立与关闭的资源开销。
//
SSL/TLS的建立过程-四次握手
1、客户端Hello
客户端发送 1支持的TLS协议版本 2一个随机数用于后续产生会话密钥 3支持的密码套件,如非对称加密RSA算法
2、服务器Hello
服务器发送 1确认支持的TLS协议版本 2一个随机数用于后续产生会话密钥 3支持的密码套件,如非对称加密RSA算法 4服务器的数字证书
3、客户端回应
客户端接收到服务器发送的信息后,首先对服务器的数字证书进行检验,是合法的后,使用服务器的公钥进行加密
加密:1预主密钥,用于后续产生会话密钥 2通信算法改变通知 告诉对方后续采用会话密钥 3客户端握手通知 表示客户端已完成握手
4、服务端回应
服务端接收到客户端的回应后 1通信算法改变通知 告诉对方后续采用会话密钥 2服务端握手通知 表示服务端已完成握手
//
如何对系统中CPU占用太高的情况进行排查?
首先是对代码逻辑进行检查,是否有过大循环、死锁等问题。
1、使用top、ps等检查进程CPU占用率
2、找到高CPU使用率的进程后,再使用pidstat可以分析进程中的线程,找到占用多的线程
//
什么是SYN攻击?
SYN攻击就是在TCP三次握手阶段,伪造客户端的SYN请求,但是IP地址是不存在的,服务端不会识别SYN是否是攻击的,回复SYN-ACK应答后,服务器会进入一个半连接状态,会给SYN分配资源,如果有大量伪造的SYN请求,那么服务端就会产生很多半连接的状态,消耗大量资源,但是不会收到第三次握手的ACK应答。
如何避免SYN攻击?
1、增加半连接的队列容量。
2、缩短SYN timeout时间,减少服务端等待半连接的时间,加快释放无效的资源。