HTTP和HTTPS的基本定义:
HTTP协议:全称是Hypertext Transfer Protocol,也就是超文本传输协议 ,用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
超文本指的是什么?通俗点讲我们所说的文本是文字,超文本的范围很广除了文字以外还包括图片、视频、音频等等。
http协议是应用层(TCP/IP的五成模型:应用层、传输层、网络层、数据链路层、物理层)的一种协议。
HTTPS协议:全称是Hypertext Transfer Protocol Secure,超文本传输安全协议的意思,是HTTP + SSL协议构建的一种通过计算机网络进行安全通信的传输协议。
SSL协议中文叫安全套接字协议,SSL协议是TLS协议的前身。那么https是怎么实现数据传输的安全性的呢?
我们可以简单的理解成当你用https协议访问一个网站的时候,网站会返回一个证书告诉你说这个网站没有安全问题可以放心的访问,然后网站生成一个盒子和两把钥匙,网站会把盒子和其中的一把钥匙给你,然后你把要发送的数据信息放到盒子里之后用钥匙锁上相当于加密后再发回给网站,然后网站再用另外一把钥匙打开盒子拿到数据信息,这个过程就是SSL协议在发挥作用,它把你的信息套住了,你的数据信息就算在传输的过程被中途截住了也打不开保证了信息的安全。
我们也可以看下图来辅助理解这个过程:
HTTP协议的特点:
1、无状态:无状态是指协议对于客户端的操作没有状态记忆。如果后续处理相同的请求,则它必须重传,这样可能导致每次连接传送的数据量增大,比如访问一个网站需要反复进行登录操作
2、无连接:指每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。
3、数据信息明文传输不安全
4、简单快速:客户向服务器请求服务时,只需传送请求方法和路径
5、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记
HTTPS的优点:
1、HTTPS协议需要申请CA证书,确保数据发送到正确的客户端和服务端
2、HTTPS协议采用混合加密技术,数据不是明文传输的
3、HTTPS协议可以保证数据的完整性在传输过程不会被冒充或篡改
HTTPS的缺点:
1、 HTTPS 协议需要申请 CA 证书,一般免费的证书很少,需要交费,而且价格和功能强弱成正比
2、 HTTPS协议握手阶段比较费时,有统计会使页面的加载时间延长近50%,增加10%到20%的耗电
3、SSL证书不能在同一IP上绑定多个域名,IPv4资源不足以支撑这个消耗
4、HTTPS占用的缓存会比HTTP多也会更多的占用服务器的连接资源
5、在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用。最关键的,SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行