http与https的区别?

1、HTTP 的最大弊端------不安全

HTTP 之所以被 HTTPS 取代,最大的原因就是不安全,因为http中所有的数据都是明文传输的,自然没有安全性可言,特别是一些敏感数据,比如用户密码和信用卡信息等,一旦被第三方获取,后果不堪设想。这里可能有人会说,我在前端页面对敏感数据进行加密不就行了,比如 MD5 加盐加密。这么想就太简单了。首先 MD5 并不是加密算法,其全称是 Message Digest Algorithm MD5,意为信息摘要算法,是一种不可逆的哈希算法,也就是说经过前端 MD5 处理过的数据在服务器端是无法复原的。这里以密码举例,前端把用户密码通过 MD5 进行处理,并把得到的哈希值发送给服务器,服务器由于无法复原密码,就会直接用这个哈希值处理用户请求。所以第三方在获取这个哈希值后,可以绕过前端登录页面直接访问服务器,造成安全问题。另外,MD5 算法本身的安全性也存在缺陷,这里就不展开谈了。
总之 MD5,SHA-1 之类的哈希算法并不能让 HTTP 变得更安全。要想让 HTTP 更安全,只能使用真正的加密算法,因为加密算法可以用密钥加密或还原数据,只要确保密钥不被第三方获取,那就能确保数据传输的安全了。而这正是 HTTPS 的解决方案

2、对称加密与非对称加密

  • 对称加密:服务器与客户端都使用同一种加密方式进行对双方数据的加解密工作
  • 非对称加密:服务器与客户端使用独立的加密方式对双方数据进行加解密工作

3、HTTPS 原理详解

HTTPS (Hypertext Transfer Protocol Secure) 是基于 HTTP 的扩展,用于计算机网络的安全通信,已经在互联网得到广泛应用。在 HTTPS 中,原有的 HTTP 协议会得到 TLS (安全传输层协议) 或其前辈 SSL (安全套接层) 的加密。因此 HTTPS 也常指 HTTP over TLS 或 HTTP over SSL。

下面由我来详细解释一下HTTPS 加密过程原理

  1. 首先客户端首次发起请求,服务端会生成CA数组证书(这个是收费的服务),这个证书中会包括服务端生成的公钥 ,同时服务端还会生成一份服务端私钥,但私钥并不会放在CA证书中
  2. 服务端将生成的CA证书响应至客户端,同时包含着服务端的公钥,将被客户端获取
  3. 客户端通过对CA证书的解析,拿到公钥,并根据此随机生成一个客户端私钥
  4. 客户端将随机生成的客户端私钥发送到服务端,服务端将使用之前生成的服务端私钥解密此次报文中的客户端私钥
  5. 至此https完成非对称加密,后续数据交互将采用客户端生成的私钥进行对称加解密
相关推荐
Zz_waiting.38 分钟前
网络原理 - 13(HTTP/HTTPS - 4 - HTTPS)
网络·http·https
李匠20241 小时前
C++负载均衡远程调用学习之TCP连接封装与TCPCLIENT封装
c++·网络协议·学习·tcp/ip
小王努力学编程1 小时前
【Linux网络编程】http协议的状态码,常见请求方法以及cookie-session
linux·服务器·网络·网络协议·http·cookie·session
程序务虚论1 小时前
抓取工具Charles配置教程(mac电脑+ios手机)
macos·ios·https·charles
2501_915106323 小时前
开发iOS App时,我常用的一款性能监控小工具分享
websocket·网络协议·tcp/ip·http·网络安全·https·udp
南川琼语3 小时前
TCP三次握手、四次挥手+多线程并发处理
linux·服务器·网络协议·tcp/ip
心 -4 小时前
UDP报文结构
网络·网络协议·udp
橙色小博1 天前
HTTP协议:原理、应用与python实践
网络·python·网络协议·http
Lw老王要学习1 天前
Linux架构篇、第1章_02源码编译安装Apache HTTP Server 最新稳定版本是 2.4.62
linux·http·架构·云计算·apache
丶Darling.1 天前
对计网考研中的信道、传输时延、传播时延的理解
网络·网络协议·tcp/ip