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的主要区别:

  1. https协议需要ca申请证书,一般需要一定费用。
  2. http是超文本传输协议,信息是明文传输,https具有安全性的ssl加密传输协议。
  3. http和https使用不同的连接方式,且前者端口80,后者443.
  4. http连接简单无状态,https协议由SSL+HTTP协议构建的可进行加密传输、身份认证网络协议,相对安全。

4. HTTPS 的工作原理

客户端在使用HTTPS方式与Web服务器通信时有一下几个步骤,如图:

  • 客户端向服务器端的443端口发送https请求
  • 服务器端有一套证书(锁——公钥,钥匙——私钥),公钥中包含证书颁发的机构以及过期时间。服务器将公钥发送给客户端
  • 客户端解析公钥,验证公钥的有效性,接着生成一个随机数,用公钥将随机数加密,并传送回服务器
  • 服务器用私钥解密,获取随机值,之后传送的数据,均通过该随机值进行对称加密传给客户端
  • 客户端和服务器都知道随机值,可以进行安全的信息传输

5. 证书

  证书的组成:服务端的公钥、服务端信息、证书中心的签名及生成算法、证书有效期等

  签名的生成:证书中心对证书内容计算一个hash值,用证书中心的私钥加密,得到签名。即签名是证书hash值的加密

  证书的验证:客户端内置证书中心的公钥,用公钥对签名解密得到hash值1,自己用相同的hash算法计算证书得到hash值2,比较这两个哈希值是否一致,来判断证书是否可信

6. HTTPS的缺点

  • 握手阶段比较费时
  • 证书需要钱
  • 连接缓存不如HTTP高效

   

人生就像蒲公英,看似自由,其实身不由己。
原文地址:https://www.cnblogs.com/walker993/p/9474670.html