目录

  1. HTTP
    1. HTTP的基本概念
    2. HTTP的缺点
  2. HTTPS
    1. HTTPS的基本概念
    2. HTTPS的工作原理
    3. HTTPS的优点
    4. HTTPS的缺点
  3. HTTP和HTTPS的区别

  超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。
  为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

HTTP

HTTP的基本概念

  HTTP: 是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP)用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
  HTTP: 是超文本传输协议信息是明文传输

HTTP的缺点

通信使用明文,可能被窃听
不验证通信方的身份,可能遭遇伪装
无法证明报文的完整性,有可能遭遇篡改

HTTPS

HTTPS的基本概念

  HTTPS(Secure Hypertext Transfer Protocol)是安全超文本传输协议,简单讲是HTTP的安全版,即HTTP下加入SSL层HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
  https: 是具有安全性的ssl加密传输协议
  HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性
注意:
  凡是用过网银的用户一定见过类似的网址 https://bank.xxxx.com ,这个就是传输层加密,报文格式:IP + TCP + SSL + HTTP
  SSL负责加密/解密工作,由于SSL工作在传输层与应用层之间,一般称之为传输层加密
  通常来说,加密代理服务器,还有Cisco Anyconnect 都属于传输层加密,都是基于SSL/TLS加密

HTTPS的工作原理

  1. 客户端发起HTTPS请求
      用户在浏览器里输入一个https网址,然后连接到server的443端口。
  2. 服务端的配置
      采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面(startssl就是个不错的选择,有1年的免费服务)。
      这套证书其实就是一对公钥和私钥,如果对公钥和私钥不太理解,可以想象成一把钥匙和一个锁头,只是全世界只有你一个人有这把钥匙,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。
  3. 传送证书
      这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等
  4. 客户端解析证书
      这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。
    如果证书没有问题,那么就生成一个随机值,然后用证书对该随机值进行加密,就好像上面说的,把随机值用锁头锁起来,这样除非有钥匙,不然看不到被锁住的内容。
  5. 传送加密信息
      这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。
  6. 服务段解密信息
      服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密,所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。
  7. 传输加密后的信息
      这部分信息是服务段用私钥加密后的信息,可以在客户端被还原。
  8. 客户端解密信息
      客户端用之前生成的私钥解密服务段传过来的信息,于是获取了解密后的内容,整个过程第三方即使监听到了数据,也束手无策。

HTTPS的优点

  1. SEO方面
    谷歌曾在2014年8月份调整搜索引擎算法,并称“比起同等HTTP网站,采用HTTPS加密的网站在搜索结果中的排名将会更高”。
  2. 安全性
      使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;
      HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。
      HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本
    1
    2
    3
    4
    5
    6
    7
    8
    9
    1、HTTPS具有更好的加密性能,避免用户信息泄露;
    2、HTTPS复杂的传输方式,降低网站被劫持的风险;
    3、搜索引擎已经全面支持HTTPS抓取、收录,并且会优先展示HTTPS结果;
    4、从安全角度来说个人觉得要做HTTPS,不过HTTPS可以采用登录后展示;
    5、HTTPS绿锁表示可以提升用户对网站信任程度;
    6、基础成本可控,证书及服务器已经有了成型的支持方案;
    7、网站加载速度可以通过cdn等方式进行弥补,但是安全不能忽略;
    8、HTTPS是网络的发展趋势,早晚都要做;
    9、可以有效防止山寨、镜像网站;

HTTPS的缺点

  1. SEO方面
      据ACM CoNEXT数据显示,使用HTTPS协议会使页面的加载时间延长近50%,增加10%到20%的耗电,此外,HTTPS协议还会影响缓存,增加数据开销和功耗,甚至已有安全措施也会受到影响也会因此而受到影响。
      而且HTTPS协议的加密范围也比较有限,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用。
      最关键的,SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行。
  2. 经济方面
      SSL证书需要钱,功能越强大的证书费用越高,个人网站、小网站没有必要一般不会用。
      SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗(SSL有扩展可以部分解决这个问题,但是比较麻烦,而且要求浏览器、操作系统支持,Windows XP就不支持这个扩展,考虑到XP的装机量,这个特性几乎没用)。
      HTTPS连接缓存不如HTTP高效,大流量网站如非必要也不会采用,流量成本太高。
      HTTPS连接服务器端资源占用高很多,支持访客稍多的网站需要投入更大的成本,如果全部采用HTTPS,基于大部分计算资源闲置的假设的VPS的平均成本会上去。
      HTTPS协议握手阶段比较费时,对网站的相应速度有负面影响,如非必要,没有理由牺牲用户体验。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    1、HTTPS会降低用户访问速度,增加网站服务器的计算资源消耗;
    2、目前搜索引擎只是收录了小部分HTTPS内容,应该保持观望制度;
    3、HTTPS需要申请加密协议,增加了运营成本;
    4、百度目前对HTTPS的优先展现效果不明显,谷歌较为明显;
    5、技术门槛较高,无从下手;
    6、目前站点不涉及私密信息,无需HTTPS;
    7、兼容性有待提升,如robots不支持/联盟广告不支持等;
    8、HTTPS网站的安全程度有限,该被黑还是被黑;
    9、HTTPS维护比较麻烦,在搜索引擎支持HTTP的情况,没必要做HTTPS;

HTTP和HTTPS的区别

区别 HTTP HTTPS
端口号 80 443
安全性 http是超文本传输协议信息是明文传输,因此使用HTTP协议传输隐私信息非常不安全 https 是具有安全性的ssl加密传输协议
连接 http的连接很简单,是无状态的 HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全
证书 https协议需要到ca申请证书,一般免费证书很少,需要交费。

参考文章:
  HTTP和HTTPS的区别
  HTTP与HTTPS的区别
  HTTP详解