HTTP和HTTPS的区别,以及HTTPS实现原理

URL:通信协议 + 域名地址
HTTP和HTTPS的区别,以及HTTPS实现原理
什么是通信协议呢?
就是浏览器和服务器交流的语言

HTTP协议是明文数据传输网络协议

HTTPS协议可以理解为HTTP协议的升级,就是在HTTP的基础上增加了数据加密。在数据进行传输之前,对数据进行加密,然后再发送到服务器。这样,就算数据被第三者所截获,但是由于数据是加密的,所以你的个人信息让然是安全的。这就是HTTP和HTTPS的最大区别。

了解HTTPS的实现原理之前先搞懂加密协议:

加密算法

对称加密:
加密和解密都是用的同一个**
eg:DES、AES
HTTP和HTTPS的区别,以及HTTPS实现原理
缺点:会产生海量的**不利于维护

非对称加密
加密使用的**和解密使用的**是不同的,分别为:公钥、私钥。
eg:RSA,DSA
非对称加密在请求发起方时,尽管使用的是公钥加密,但是因为必须使用私钥解密的特点,因此能够保证消息体在向服务器发送的过程中是安全的。缺点在于服务器返回的使用私钥加密的内容会被公钥解开。
HTTP和HTTPS的区别,以及HTTPS实现原理

哈希算法
将任意长度的信息转换为较短的固定长度的值,通常其长度要比信息小得多,且算法不可逆。
eg:MD5、SHA

客户端在获取一个公钥之后,如何确定这个公钥是正确的服务端发出来的呢?
答案是:使用证书

HTTP和HTTPS的区别,以及HTTPS实现原理

HTTP和HTTPS的区别,以及HTTPS实现原理

HTTPS实现原理

https通信时,首先建立ssl层的连接,服务端将ssl版本号和加密组件发到客户端,客户端收到后对ssl版本号和加密组件进行匹配,同时将CA证书及**发送到客户端。客户端对证书进行验证,验证通过后使用非对称加密对数据通信时的**进行协商。协商后得到一致的获得一致的对称加***。然后使用对称加密算法进行TCP连接,后续的过程跟http的过程一致。三次握手,数据交换,四次挥手,通信结束。
HTTP和HTTPS的区别,以及HTTPS实现原理
用我自己的理解:客户端的AES**是随机产生的。客户端使用RSA算法加密的公钥对AES的**进行加密,传送给服务端。服务端使用RSA算法的私钥对加密过后AES**文件进行解密,得到AES**。得到AES**之后,后面的通讯都用AES进行

HTTP和HTTPS的区别,以及HTTPS实现原理