面试 八股文 经典题目 - HTTPS部分(一)

目录

[1. 讲讲4次握手](#1. 讲讲4次握手)

[2. 为什么要设计四次握手](#2. 为什么要设计四次握手)

[3. HTTP 504状态码详解](#3. HTTP 504状态码详解)

[4. 服务器响应时间过长有哪些原因,如何排查](#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重传分析与链路质量测试