http 和 https 建立连接的不同

HTTP和HTTPS在建立连接时都需要进行"三次握手",因为三次握手是TCP协议的一部分,用于建立可靠的传输层连接。

HTTP和HTTPS在建立连接时的过程

HTTP 的三次握手

HTTP协议本身是无状态的应用层协议,它依赖于传输层的TCP协议来建立和管理连接。因此,当浏览器向服务器发送HTTP请求时,会首先通过TCP协议进行三次握手,建立可靠的TCP连接。步骤如下:

  1. SYN:客户端向服务器发送一个SYN(同步序列编号)包,请求建立连接。
  2. SYN-ACK:服务器收到SYN包后,回复一个SYN-ACK(同步序列编号-确认)包,表示同意建立连接。
  3. ACK:客户端收到SYN-ACK包后,回复一个ACK(确认)包,确认连接建立。

至此,TCP连接建立,客户端和服务器之间可以进行HTTP数据传输。

HTTPS 的三次握手

HTTPS是HTTP协议的安全版本,依赖于SSL/TLS协议进行数据加密。在建立HTTPS连接时,需要进行两个阶段的握手过程:

  1. TCP三次握手

    • SYN:客户端向服务器发送一个SYN包,请求建立连接。
    • SYN-ACK:服务器收到SYN包后,回复一个SYN-ACK包,表示同意建立连接。
    • ACK:客户端收到SYN-ACK包后,回复一个ACK包,确认连接建立。
  2. SSL/TLS握手

    • 在TCP连接建立后,客户端和服务器会进行SSL/TLS握手,以建立安全的加密通道。这个过程包括:
      • 客户端Hello:客户端发送支持的SSL/TLS版本、加密算法等信息给服务器。
      • 服务器Hello:服务器选择加密算法,并将服务器证书发送给客户端。
      • 证书验证:客户端验证服务器证书的有效性。
      • 密钥交换:客户端生成一个随机数,用服务器的公钥加密后发送给服务器,服务器使用私钥解密获得随机数。
      • 生成对称密钥:客户端和服务器根据约定的算法和交换的随机数生成对称加密密钥,用于接下来的数据加密传输。
      • 完成握手:双方发送完成消息,表示SSL/TLS握手成功,建立了安全的加密通道。

总结

  • HTTP:需要进行TCP三次握手来建立可靠的传输层连接。
  • HTTPS:不仅需要进行TCP三次握手,还需要在此基础上进行SSL/TLS握手,以建立安全的加密连接。

因此,HTTP和HTTPS在建立连接时都会进行"三次握手",但是HTTPS还额外包括了SSL/TLS握手过程,以确保数据传输的安全性。

相关推荐
lwprain3 分钟前
安装支持ssl的harbor 2.1.4 docker 19.03.8 docker-compose 1.24.0
网络协议·ssl·harbor
软件技术员5 分钟前
Let‘s Encrypt SSL证书:acmessl.cn申请免费3个月证书
服务器·网络协议·ssl
C++忠实粉丝3 小时前
计算机网络socket编程(3)_UDP网络编程实现简单聊天室
linux·网络·c++·网络协议·计算机网络·udp
Gworg3 小时前
创建HTTPS网站
安全·https·ssl
C++忠实粉丝5 小时前
计算机网络socket编程(4)_TCP socket API 详解
网络·数据结构·c++·网络协议·tcp/ip·计算机网络·算法
Estar.Lee5 小时前
时间操作[取当前北京时间]免费API接口教程
android·网络·后端·网络协议·tcp/ip
蝶开三月5 小时前
php:使用socket函数创建WebSocket服务
网络·websocket·网络协议·php·socket
G丶AEOM5 小时前
SSL/TLS,SSL,TLS分别是什么
网络·网络协议·网络安全
木子_lishk6 小时前
gateway 支持同时使用 https 和 http访问
https·gateway
Koi慢热6 小时前
路由基础(全)
linux·网络·网络协议·安全