# 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原理

流程如下图: image

加密过程是使用的非对称加密算法实现

  • 首先服务端给客户端传输证书,这个证书就是公钥,这个证书包含了很多信息,如:证书颁发机构、过期时间等

  • 客户端进行证书的解析,如验证证书颁发机构、过期时间等

  • 服务端使用私钥进行解密得到随机数

数据传输是使用的对称加密算法实现

  • 如果证书校验没有发生问题,就生成一个随机值作为密钥II并存储在本地, 然后用证书即公钥对密钥2进行加密,并且发送给服务端

  • 服务端通过解密得到的随机数即密钥II对数据进行加密

  • 客户端根据本地存储的随机数即密钥II对服务端返回的数据进行解密

加密方式的改变

因为非对称加解密的效率是非常低的,而http的应用场景中存在大量的交互

https的场景中,只有服务器端才保存有私钥,一对公私钥只能实现单向的加解密, 这保证了密钥II的安全性

  • 所以https中内容传输加密方式更换为了对称加密