文章目录
HTTP 与 HTTPS 的三次握手与四次挥手详解
在互联网的世界中,HTTP(HyperText Transfer Protocol)和 HTTPS(HTTP Secure)是我们常见的两种网络协议。HTTP 是一种用于传输网页数据的协议,而 HTTPS 是在 HTTP 基础上加入了 SSL/TLS 加密层以确保数据安全的协议。两者都基于 TCP/IP 协议,因此在建立和断开连接时,都会经历“三次握手”与“四次挥手”的过程。本文将详细讲解这两种协议的三次握手与四次挥手的过程,并对 HTTPS 中有证书与无证书的情况进行区分。
我们先看看基本的计算机网络中的TCP连接建立和断开的过程。
一、HTTP 的三次握手与四次挥手
HTTP 基于 TCP 协议,使用 TCP 的三次握手建立连接,使用四次挥手断开连接。由于 HTTP 不涉及加密或证书,因此整个连接流程相对简单,直接使用 TCP 进行通信。
1. HTTP 三次握手
HTTP 的三次握手过程如下:
-
第一次握手(SYN):
- 客户端发送一个 SYN(同步序列编号)包,请求建立连接。
- 此时,客户端进入 “SYN_SENT” 状态。
-
第二次握手(SYN + ACK):
- 服务器收到 SYN 包后,回复一个 SYN + ACK 包,表示确认收到客户端的请求,并发送了自己的 SYN 请求。
- 服务器进入 “SYN_RECV” 状态。
-
第三次握手(ACK):
- 客户端收到服务器的 SYN + ACK 包后,再次发送一个 ACK(确认)包给服务器&#x