面试 八股文 经典题目 - HTTPS部分(一)
目录
1. 讲讲4次握手
2. 为什么要设计四次握手
3. HTTP 504状态码详解
4. 服务器响应时间过长有哪些原因,如何排查
原因:
排查:
首先我们要清楚明白一个 知识点 就是HTTP与HTTPS存在关键差异,当然也存在一些基础相同
HTTP:是明文传输,数据可被窃听/篡改 默认端口:80 在应用层
HTTPS: 是SSL加密传输,防窃听防篡改 默认端口:443 在传输层
简单理解就是 HTTPS = HTTP + TLS/SSL加密层
1. 讲讲4次握手
在连接关闭时,当一方发送FIN报文后,对方可能还有数据要发送,所以不能立即关闭,因此需要将ACK和FIN分别发送,这就导致了四次握手。
2. 为什么要设计四次握手
四次握手是TCP协议用于终止连接的过程,整个过程涉及四个步骤,因此称为四次握手,参与双方分别是客户端和服务端(任何一方都可以主动发起关闭)
假设客户端主动关闭:
第一次挥手:客户端发送了个FIN,并进入FIN_WAIT_1状态。这表示客户端已经没有数据要发送了,但还可以接受数据。
第二次挥手:服务器收到FIN,发送一个ACK,并进入CLOSE_WAIT状态,此时,服务器可能还有数据要发送。客户端收到ACK,进入FIN_WAIT_2状态。
第三次挥手:服务器发送完数据后,会发送一个FIN报文段,进入LAST_ACK,表示服务器也没有数据要发送了。
第四次挥手:客户端收到服务器发送的FIN,发送一个ACK,然后进入TIME_WAIT状态,等待2MSL(报文最大存活时间2倍),服务器收到ACK,进入CLOSED状态。客户端等待2MSL,也进入CLOSED状态。
3. HTTP 504状态码详解
504:完全无响应:表示网关或代理服务器未能及时从上游服务器收到响应,属于服务器端错误。 经典案例:sql查询超时冻结服务。
502:收到无效响应:返回错误格式/内容 经典案例:进程崩溃。
4. 服务器响应时间过长有哪些原因,如何排查
原因:
1. 操作系统层问题:存在cpu竞争
2. 中间件层问题: 存在慢查询阻塞与连接池耗尽
3. 网络层问题: 存在TCP重传与DNS延迟
排查:
1. 操作系统优化:禁用大透明页,绑定CPU核
2. REDIS深度优化
3. 网络诊断:TCP重传分析与链路质量测试