引言:本文主要介绍了HTTP&HTTPS,及它们的主要区别、HTTPS加密解密与验证全流程详解、TCP协议、三次握手和四次挥手、问题分析
一、HTTP/HTTPS
1.1 HTTP简介
HTTP超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。
1.2 HTTPS简介
HTTPS也是⼀个应⽤层协议.是在HTTP协议的基础上引⼊了⼀个加密层. HTTP协议内容都是按照⽂本的⽅式明⽂传输的.这就导致在传输过程中出现⼀些被篡改的情况。
HTTP请求报文格式:
HTTP响应报文格式
1.3 http与https的区别
HTTP和HTTPS的主要区别在于它们的安全性和加密方式。
1.1 安全性
HTTP:HTTP是不安全的,因为它在传输数据时不加密。因此,所有信息都以明文形式在互联网上传输。这意味着任何可以监听到HTTP通信的人都可以看到传输的数据。
HTTPS:HTTPS是安全的,因为它使用SSL/TLS协议来加密和解密客户端和服务器之间的所有通信。这意味着在HTTPS连接中,客户端和服务器之间传输的所有数据都将被加密,因此无法被监听或者读取。
1.2 加密方式
HTTP:HTTP不使用任何加密技术。
HTTPS:HTTPS使用SSL/TLS加密技术,其中包括对称加密和非对称加密。对称加密是指客户端和服务器使用同一个密钥来加密和解密数据,而非对称加密是指服务器生成一对公钥和私钥,私钥保存在服务器端,公钥则发送给客户端。使用公钥加密的数据只能用私钥解密,而使用私钥加密的数据只能用公钥解密。
1.3 性能: HTTPS通常比HTTP慢,因为加密和解密需要更多的计算资源和时间。
1.4 证书成本: HTTPS需要CA颁发的SSL证书,而这需要一定的成本。
1.5 端口: HTTP默认端口是80,而HTTPS默认端口是443。
1.6 使用场景
需要保护数据隐私和安全的场景,如银行、支付等交易活动,推荐使用HTTPS。
对性能要求较高,不需要数据保密的场景,可以使用HTTP。
二、HTTPS加密解密与验证全流程详解
HTTPS(Hypertext Transfer Protocol Secure)是一种通过SSL/TLS协议对HTTP进行加密的协议,旨在确保数据在网络传输过程中的安全。它通过加密技术、证书机制和数据完整性校验等手段,保护数据的保密性、完整性和可靠性。
🔑 2.1 加密和解密过程
密钥交换:在HTTPS中,客户端和服务器之间需要建立安全的通信,首先需要进行密钥交换。
数据加密:密钥交换完成后,客户端和服务器之间将使用对称加密算法对数据进行加密和解密。
消息认证码(MAC):为了确保数据的完整性和真实性,HTTPS还使用了消息认证码(MAC)机制。MAC是一种基于密钥的哈希函数,用于对数据进行校验。
常见的加密方式参考:[https://blog.youkuaiyun.com/dt927992/article/details/141282617]
📜 2.2 证书验证
证书有效性检查:客户端会检查证书是否在有效期内,以及证书是否被吊销。
域名匹配:客户端会验证证书中的域名是否与实际请求的域名一致。
证书签名验证:客户端会验证证书的签名是否有效。这需要使用客户端信任的根证书对颁发机构的签名进行验证。