Http和Https的概念
Http(全称:Hyppertext transfer protocol)是一种在因特网上传送数据的协议,他详细规定了浏览器和万维网服务器之间互相通信的规则,http协议是无状态的,同一个客户端的这次请求和上次请求是没有对应关系,对http服务器来说,它并不知道这两个请求来自同一个客户端(为了解决这个问题, Web程序引入了Cookie机制来维护状态),HTTP请求只能有客户端发起(这才有了WebSocket的诞生,后面再将)
Https(全称:Hypertext Transfer protocol over secure socket layer),是以安全为目标的HTTP通道, 是HTTP下加入SSL层的协议,HTTPS的安全基础是SSL(SSL,TLS),所有的数据封装,压缩,加密等都是由SSL完成的,
Http和Https的区别
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
HTTP方式和web服务器通信的步骤
HTTP通信过程中,Web浏览器和Web服务器之间需要完成七个步骤(网上一大堆,我这也是剽窃,说个大概,详细的网上一大堆,HTTP的请求或者应答包含的详细信息,将在下一节详细介绍):
(1) 建立TCP连接
(2) Web浏览器向Web服务器发送请求命令
(3) Web浏览器发送请求头信息
(4) Web服务器应答
(5) Web服务器发送应答头信息
(6) Web服务器向浏览器发送数据
(7) Web服务器关闭TCP连接(keep-alive例外)
客户端和服务器通讯的大致序列图如下,
HTTPS方式和Web服务器通信的步骤
(1)客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。
(2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
(3)客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
(4)客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
(5)Web服务器利用自己的私钥解密出会话密钥。
(6)Web服务器利用会话密钥加密与客户端之间的通信。
说了这么多,咱们来说下HTTPS的优点:
(1)HTTPS在建立密文通信的过程中,会认证客户机和服务器,所以能将将数据发送到正确的客户机和服务器上。
(2)相比于HTTP的明文传送,HTTPS是HTTP+SSL构建的加密传输,身份认证的网络协议,可以防止在数据传输过程中,数据被窃取,修改,确保数据的完整性
(3)HTTPS是现行框架下最安全的解决方案,会大大提高攻击人的攻击成
有了优点,肯定会有相应的缺点,下面说下HTTPS的缺点:
(1)HTTPS的握手阶段,比较费时,会使页面的加载时间延长将近50%
(2)HTTPS的缓存没有HTTP的缓存高效,会增加数据的开销和功耗
(3)HTTPS也不是绝对的安全,特别是在服务器受到劫持,攻击等,起不到任何作用
(4)HTTPS需要的CA证书一般需要钱,如果功能强大,费用会更高