超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息。
为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
概念
HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从服务器传输超文本到浏览器。
HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层。
区别
(1)https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
(2)http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
(3)http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
HTTPS工作原理
(1)客户端请求建立SSL连接。
(2)服务端返回网站的证书信息(公钥)
(3)客户端与服务器协商加密等级
(4)客户端产生随机的对称密钥,并利用公钥加密。
(5)客户端向服务器发送加密的对称密钥,服务器用自己的私钥解密出对称密钥。
(6)服务器利用对称密钥加密通信。
对称加密和非对称加密
HTTP综合了这两种加密方式。
对称加密是文件的加密解密使用相同的密钥。
非对称加密需要一对公钥和密钥。如果用公钥加密,只有对应私钥可以解密。