# http和https
http是超文本传输协议,它负责完成客户端到服务端的一系列操作,是专门用来传输注入HTML的超媒体文档等web内容 的协议,它是基于TCP协议的应用层协议
https是基于安全套接字的http协议,也可理解为是 http + ssl/tsl (数字证书) 的组合
- 简单来说,http是用来进行html等超媒体传输的,但是http并不安全,为了安全, 使用证书SSL和http的方式进行数据传输,就是https
https安全在哪?
确保了传输安全,防止传输过程被监听、防止数据被窃取,可以确认网站的真实性
区别:
区别点 | http | https |
---|---|---|
URL开头 | http:// | https:// |
安全 | 不安全 | 安全 |
端口 | 80 | 443 |
证书 | 不需要 | 需要 |
# https原理
流程如下图:
加密过程是使用的非对称加密算法实现
首先服务端给客户端传输证书,这个证书就是公钥,这个证书包含了很多信息,如:证书颁发机构、过期时间等
客户端进行证书的解析,如验证证书颁发机构、过期时间等
服务端使用私钥进行解密得到随机数
数据传输是使用的对称加密算法实现
如果证书校验没有发生问题,就生成一个随机值作为密钥II并存储在本地, 然后用证书即公钥对密钥2进行加密,并且发送给服务端
服务端通过解密得到的随机数即密钥II对数据进行加密
客户端根据本地存储的随机数即密钥II对服务端返回的数据进行解密
加密方式的改变
因为非对称加解密的效率是非常低的,而http的应用场景中存在大量的交互
https的场景中,只有服务器端才保存有私钥,一对公私钥只能实现单向的加解密, 这保证了密钥II的安全性
- 所以https中内容传输加密方式更换为了对称加密