1.HTTP
浏览器既解析http数据,又body,web服务器只解析http数据。
2. HTTPS
2.1 HTTPS是什么?
HTTPS:基于HTTP数据+SSL/TLS协议
http明文传输,https是加密后的数据传输,相对于http来说更加安全。
2.2加密
2.2.1对称加密(DES)
对称加密:加密和解密使用相同的密钥。
2.2.2非对称加密
非对称加密:加密解密使用的密钥不同,但是是有关系的。
公钥: 开放给别人用的,一般是用于解密。
私钥: 客户端和服务端都可以有(自己用的),并且可以通过私钥来生成公钥,一般是用于解密。
2.2.3 认证
https有两种传输方式:
(1)单向认证:只有服务端私钥,只验证服务端的身份,用户都可以访问。
(2)双向认证:客户端和服务端都有私钥。用户要验证服务端的身份,服务端也要验证用户的身份(企业级用户 ,如银行)。
2.2整个流程
(1)认证/握手阶段的流程:认证身份、以非对称加密算法生成一个密钥。
(2)真正发送数据的流程:用握手阶端生成的密钥,对数据使用对称加密算法进行加密。
第一步:客户端给出协议版本号、一个客户端生成的随机数(Client random),以及客户端支持的加密方法;
第二步:服务端确认双方使用的加密方法,并给出数字证书(服务端信息+公钥)、以及一个服务器生成的随机数(Server random);
第三步:客户端确认数字证书有效,然后生成一个新的随机数(Premaster secret),并使用数字证书中的公钥,加密这个随机数,发给服务端;
第四步:服务端使用自己的私钥,获取客户端发来的随机数(即 Premaster secret).
第五步:客户端与服务端根据约定的加密方法,使用前面三个随机数。生成"对话密钥"(session key),用来加密接下来的整个对话的过程。