前端面试题 - http和https
http和https的基本概念
- http:是一个客户端和服务器端请求和应答的标准(TCP),用于从www服务器传输超文本到本地浏览器的超文本传输协议。
- https:是以安全为目标的HTTP通道,即HTTP下加入SSL层进行加密。其作用是:建立一个信息安全通道,来确保数据的传输,确保网站的真实性。
http和https的区别
- http是超文本传输协议,信息是明文传输,HTTPS协议要比http协议安全。
- HTTPS是具有安全性的SSL加密传输协议,可防止数据在传输过程中被窃取、改变,确保数据的完整性(当然这种安全性并非绝对的)。
- http协议的默认端口为80,HTTPS的默认端口为443。
- http的连接很简单,是无状态的。HTTPS握手阶段比较费时,会使页面加载时间延长50%,增加10%-20%的耗电。
- HTTPS缓存不如http高效,会增加数据开销。
- HTTPS协议需要CA证书,费用较高,功能越强大的证书费用越高。
- SSL证书需要绑定IP,不能在同一个IP上绑定多个域名IPV4资源支持不了这种消耗。
HTTPS协议的工作原理
- 客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤:
- 客户端使用HTTPS url访问服务器,则要求web服务器建立ssl链接。
- web服务器接收到客户端的请求之后,会将网站的证书(证书中包含了公钥),传输给客户端
- 客户端和web服务器端开始协商SSL链接的安全等级,也就是加密等级。
- 客户端浏览器通过双方协商一致的安全等级,建立会话密钥,然后通过网站的公钥来加密会话密钥并传送给网站。
- web服务器通过自己的私钥解密出会话密钥。
- web服务器通过会话密钥加密与客户端之间的通信。