https和http的区别,及HTTPS的工作流程

HTTP(HyperText Transfer Protocol)和HTTPS(HyperText Transfer Protocol Secure)都是超文本传输协议,但它们之间的关键区别在于安全性。

  1. 安全性

    • HTTP:数据以明文传输,没有加密,容易被第三方截获和篡改。
    • HTTPS:在HTTP的基础上加入了SSL/TLS加密层,数据在传输过程中是加密的,可以有效保护用户隐私。
  2. 端口

    • HTTP:使用的是80端口。
    • HTTPS:使用的是443端口。
  3. 证书

    • HTTP:不需要证书。
    • HTTPS:需要SSL/TLS证书来验证服务器的身份,确保用户连接到的是可信的服务器。
  4. 速度

    • HTTP:由于没有加密和解密过程,相对速度更快。
    • HTTPS:需要加密和解密,速度相对慢一些,但现代浏览器和服务器已优化了HTTPS性能,速度差异很小。
  5. SEO优先级

    • HTTPS:被搜索引擎(如Google)优先考虑,更有利于SEO优化。

总之,HTTPS在传输安全性方面优于HTTP,更适用于需要保护用户数据的场景,例如在线支付、登录系统等。

htttps的原理

HTTPS(HyperText Transfer Protocol Secure)是一种在HTTP协议基础上,通过SSL/TLS加密来保证通信安全的协议。它通过加密、数据完整性验证和身份验证,来保护用户与服务器之间的数据传输。以下是HTTPS的工作原理和详细流程:

1. 加密协议:SSL/TLS

  • HTTPS采用SSL(Secure Sockets Layer)或TLS(Transport Layer Security)协议进行加密。TLS是SSL的升级版,更安全、更高效,目前大多数网站使用TLS。

2. HTTPS的工作流程

HTTPS的整个工作流程可以分为几个关键步骤:

2.1 客户端与服务器握手
  1. 客户端请求连接:客户端(如浏览器)向服务器发起HTTPS连接请求,并发送一个"Client Hello"消息,其中包含客户端支持的加密算法和TLS版本。

  2. 服务器响应:服务器收到请求后,回复"Server Hello"消息,包含服务器选择的加密算法、TLS版本以及服务器的SSL证书(包含公钥)。

2.2 验证服务器身份
  1. 验证证书:客户端收到服务器证书后,通过证书颁发机构(CA)验证该证书的合法性。如果证书无误,继续进行下一步;如果证书有问题,浏览器会发出警告。

  2. 检查域名:客户端还会验证证书中的域名是否与服务器的域名匹配,以确保连接的是合法的服务器。

2.3 生成会话密钥
  1. 生成会话密钥:客户端生成一个"会话密钥",并用服务器的公钥对该会话密钥加密后发送给服务器。

  2. 服务器解密会话密钥:服务器用其私钥解密出会话密钥。此时,客户端和服务器都拥有相同的会话密钥,用于后续的数据传输。

2.4 建立加密通信
  • 加密传输:通过会话密钥,客户端和服务器之间的通信内容都将以对称加密的方式进行传输,加密算法由双方协商确定。
  • 数据完整性验证:每次发送数据时,会添加一个消息验证代码(Message Authentication Code, MAC),用于验证数据的完整性,防止数据在传输过程中被篡改。

3. HTTPS的核心机制

HTTPS的核心机制包括身份验证加密数据完整性

  • 身份验证:通过SSL/TLS证书,客户端可以确认服务器的身份,确保用户访问的是真实的服务器,而不是伪造的钓鱼网站。
  • 加密 :利用对称加密和非对称加密的组合来确保传输的数据是安全的。
    • 对称加密(如AES)用于加密实际数据,因为对称加密速度较快。
    • 非对称加密(如RSA)用于传输会话密钥,因为非对称加密速度慢但安全性高。
  • 数据完整性:每次传输的数据都会附加MAC,以防数据被篡改,确保数据完整性。

4. HTTPS握手中的关键概念

  • 会话密钥(Session Key):由客户端生成的用于会话期间的数据加密的密钥,确保通信效率和安全性。
  • 数字证书:由CA签发,证书包含服务器的公钥、域名和签名信息,用来证明服务器的身份。
  • 非对称加密和对称加密的结合:初始握手阶段用非对称加密传递会话密钥,后续数据传输使用对称加密提高效率。

5. HTTPS性能优化

尽管HTTPS增加了一些额外的计算和网络开销,但现代HTTPS协议通过一些技术优化来提升性能:

  • 会话复用:如果客户端和服务器之前已有过TLS连接,可以复用之前的会话参数,减少握手次数。
  • HTTP/2协议:支持多路复用和头部压缩,提升了HTTPS的传输效率。
  • 证书透明度:通过证书透明度机制,浏览器可以快速检验证书的合法性,减少延迟。

6. HTTPS的优缺点

  • 优点

    • 提供加密保护、防止数据被窃听;
    • 验证服务器身份、防止用户访问虚假网站;
    • 增强SEO排名,有助于网站可信度。
  • 缺点

    • 需要SSL/TLS证书,成本较高;
    • 增加握手过程和加解密开销,稍微影响传输速度。

总结

HTTPS通过SSL/TLS协议实现加密通信,利用非对称加密来验证身份,生成会话密钥,通过对称加密确保数据传输的安全和完整性。握手流程虽然复杂,但确保了用户数据的机密性和完整性,在现代网络安全中是不可或缺的部分。

相关推荐
liu****7 分钟前
18.HTTP协议(一)
linux·网络·网络协议·http·udp·1024程序员节
赖small强11 分钟前
【ZeroRange WebRTC】KVS WebRTC 示例中的 HTTP 通信安全说明
https·webrtc·tls·aws sigv4·信道安全·时间与重放控制
拾忆,想起2 小时前
Dubbo异步调用实战指南:提升微服务并发性能
java·服务器·网络协议·微服务·云原生·架构·dubbo
阿巴~阿巴~7 小时前
基于UDP协议的英汉翻译服务系统:从网络通信到字典查询的完整机制
linux·服务器·网络·网络协议·udp协议·套接字绑定·英汉翻译服务系统
another heaven8 小时前
【计算机网络 HTTP 请求参数规范详解】
网络协议·计算机网络·http
慧慧吖@11 小时前
sse,短轮询,长轮询,webSocket
网络·websocket·网络协议
AiXed15 小时前
PC微信协议之nid算法
python·网络协议·算法·微信
赖small强17 小时前
【ZeroRange WebRTC】Amazon Kinesis Video Streams WebRTC Data Plane REST API 深度解析
https·webrtc·data plane rest·sigv4 签名
Laravel技术社区18 小时前
海康视频 h5player 配置 proxy 代理websocket播放视频问题(websocket在业务系统https方式访问http的播放视频)
websocket·http·音视频
果壳~19 小时前
【Java】使用国密2,3,4.仿照https 统一请求响应加解密
java·https