http和https
参考:https://blog.csdn.net/xionghuixionghui/article/details/68569282,https://blog.csdn.net/rainHistory/article/details/78780227
1. HTTP协议以明文方式发送内容,不提供数据加密,为了解决这一缺陷,HTTPS应运而生,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,为浏览器和服务器之间的通信加密。
2. HTTP协议的主要作用分为两种:一种是建立一个信息安全的通道,来保证数据传输的安全,另一种是确认网站的真实性。
3. HTTP与HTTPS的主要区别:
- https协议需要ca申请证书,一般需要一定费用。
- http是超文本传输协议,信息是明文传输,https具有安全性的ssl加密传输协议。
- http和https使用不同的连接方式,且前者端口80,后者443.
- http连接简单无状态,https协议由SSL+HTTP协议构建的可进行加密传输、身份认证网络协议,相对安全。
4. HTTPS 的工作原理
客户端在使用HTTPS方式与Web服务器通信时有一下几个步骤,如图:
- 客户端向服务器端的443端口发送https请求
- 服务器端有一套证书(锁——公钥,钥匙——私钥),公钥中包含证书颁发的机构以及过期时间。服务器将公钥发送给客户端
- 客户端解析公钥,验证公钥的有效性,接着生成一个随机数,用公钥将随机数加密,并传送回服务器
- 服务器用私钥解密,获取随机值,之后传送的数据,均通过该随机值进行对称加密传给客户端
- 客户端和服务器都知道随机值,可以进行安全的信息传输
5. 证书
证书的组成:服务端的公钥、服务端信息、证书中心的签名及生成算法、证书有效期等
签名的生成:证书中心对证书内容计算一个hash值,用证书中心的私钥加密,得到签名。即签名是证书hash值的加密
证书的验证:客户端内置证书中心的公钥,用公钥对签名解密得到hash值1,自己用相同的hash算法计算证书得到hash值2,比较这两个哈希值是否一致,来判断证书是否可信
6. HTTPS的缺点
- 握手阶段比较费时
- 证书需要钱
- 连接缓存不如HTTP高效
人生就像蒲公英,看似自由,其实身不由己。