HTTP与HTTPS的区别

一. 简介

    HTTP是作用于浏览器和服务器之间的一种超文本传输网络协议,并且是以明文的形式进行数据传输,没有进行任何加密,如果被人劫持到传输数据,很容易直接读取其中信息。
    如果想使传输协议变成安全的,需要在此基础之上加入SSL(Secure Sockets Layer)证书,依靠证书来验证服务器身份,为浏览器和服务器之间的通信进行加密,变成安全套接字层超文本传输协议:HTTPS。
    虽然HTTPS进行了数据加密,但也不是绝对安全的,掌握根证书的机构、掌握加密算法的组织同样可以进行中间人形式的攻击,单HTTPS仍然是现行架构下最安全的解决方案。

二. 基本概念

  • HTTP:目前网上应用最为广泛的一种协议,是浏览器和服务器之间请求和应答的一种标准(TCP:传输控制协议),使浏览器更加高效,使网络传输减少。
  • HTTPS:安全的HTTP通道,在HTTP的基础之上加入了SSL进行数据加密,简单的说就是安全版的HTTP,

三. 主要区别

  • HTTP不需要证书,HTTPS需要到CA申请证书,这种证书一遍免费的比较少,所以可能得花费一些费用。
  • HTTP是超文本传输协议,传输的信息为明文方式,HTTPS是通过SSL加密后进行传输。
  • HTTP和HTTPS采用完全不同的连接方式,端口号也是不同的,前者是80端口,后者是443端口。
  • HTTP的连接是无状态的,HTTPS是由HTTP协议+SSL构建可进行加密传输、身份认证的网络协议,比HTTP协议安全。

四. HTTPS的工作原理

  1. 客户端通过HTTPS的URL访问服务器,建立SSL连接;
  2. 服务端将证书信息(包含公钥)的信息返回给客户端;
  3. 客户端拿到证书信息后,与服务器的信息加密等级建立会话秘钥;
  4. 通过公钥(包含在证书信息中)对会话秘钥进行加密,并传输给服务端;
  5. 服务器通过自己的私钥对会话秘钥进行解密,并利用会话秘钥与客户端建立通信。

五. HTTPS的3优4缺

  1. (优点)HTTPS协议可以认证客户端和服务器,确保数据发送到正确的位置(客户端和服务器);
  2. (优点)HTTPS是由HTTP协议+SSL构建,可以防止数据传输过程中不被窃取,篡改,确保数据的完整性;
  3. (优点)HTTPS是现行架构下最安全的解决方案,虽然不能做到百分之百安全,但是也让攻击人的成本大幅提高了;
  4. (缺点)HTTPS协议在通信建立阶段比较费时,会使页面的加载时间延长50%,增加10-20%的耗电;
  5. (缺点)HTTPS连接缓存没有HTTP高效,同时增加了数据读写的开销和功效,甚至可能会影响现有的安全措施;
  6. (缺点)SSL证书功能越强大,价格越高;
  7. (缺点)HTTPS协议的加密范围有限,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不了什么作用,特别是在可以控制CA根证书的情况下,同样可以进行中间人攻击。

六. 番外之SSL(Secure Sockets Layer)

SSL证书分为三类:

  • 单域名证书:只能绑定一个域名;
  • 多域名证书:可以绑定2-250个不同的域名;
  • 通配符证书:可以绑定一个域名及其所有的下一级域名,没有数量限制;