说一下 http 和 https
(1)http 和 https 的基本概念
http:超文本传输协议,是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从 WWW 服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
https:是以安全为目标的 http 通道,简单讲是 http 的安全版,即 http 下加入 ssl 层,https 的安全基础是 SSL,因此加密的详细内容就需要 ssl。ssl 依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密(在传输层)。
https 协议的主要作用是:建立一个信息安全通道,来确保数组的传输,确保网站的真实性。
http + 加密 + 认证 + 完整性保护 = https
(2)http 和 https 的区别?
http 传输的数据都是未加密的,也就是明文的,网景公司设置了 ssl 协议来对 http 协议传输的数据进行加密处理,简单来说 https 协议是由 http 和 ssl 协议构建的可进行加密传输和身份认证的网络协议,比 http 协议的安全性更高。
主要区别如下:
https 协议需要 CA 证书,费用较高。
http 是超文本传输协议,信息是明文传输,https 则是具有安全性的 ssl 加密传输协议。
http 是直接与 TCP 进行数据传输;而 https 运行在 ssl/tls(安全传输层协议)之上,ssl/tls 运行在 TCP 之上,用的端口也不一样,前者是 80(需要国内备案),后者是 443。
http 的连接很简单,是无状态的;https 协议是由 ssl+http 协议构建的可进行加密传输、身份认证的网络协议,比 http 协议安全。
(3)https 协议的工作原理
客户端在使用 http 是方式与 web 服务器通信时有以下几个步骤:
客户端使用 https url 访问服务器,则要求 web 服务器建立 ssl 链接。
web 服务器接收到客户端的请求之后,会将网站的证书(证书中包含了公钥),返回或者说传输给客户端。
客户端和 web 服务器端开始协商 ssl 链接的安全等级,也就是加密等级。
客户端浏览器通过双方协商一致的安全等级,建立会话密钥,然后通过网站的公钥来加密会话密钥,并传送给网站。
web 服务器通过自己的私钥解密出会话密钥。
web 服务器通过会话密钥加密与客户端之间的通信。
(4)https 协议的优点
使用 https 协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;
https 协议是由 ssl+http 协议构建的可进行加密传输、身份认证的网络协议,要比 http 协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。
https 是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。
(5)https 协议的缺点
https 握手阶段比较费时,会使页面加载时间延长 50%,增加 10%~20% 的耗电。
https 缓存不如 http 高效,会增加数据开销。
ssl 证书也需要钱,功能越强大的证书费用越高。
ssl 证书需要绑定 IP,不能再同一个 IP 上绑定多个域名,IPv4 资源支持不了这种消耗。