Http与Https

概括

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

http和https的基本概念

http:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(tcp),用于从WWW服务器传输超文本到浏览器的传输协议,他可以使浏览器更加高效,使网络传输减少。
https:是以安全为目的的http通道,即http(应用层)下加入SSL层,https的安全基础是SSL,因此加密的详细内容就需要SSL

https协议的主要作用可分为两种:

  • 建立一个信息安全通道,保证数据传输的安全
  • 确认网站的真实性

http和https的区别

http协议传输的数据都是未加密的,也就是明文的,因此使用http协议传输隐私信息非常不安全,为了保证隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对http协议传输的数据进行加密,从而诞生了https

  1. http协议需要用到ca申请证书,需要一定费用
  2. http是超文本传输协议,信息是明文传输,https是具有安全性的ssl加密传输协议
  3. 两者采用完全不同的连接方式,用的端口也不一样,http用的是80端口,https用的是403端口
  4. http的连接很简单,是无状态的;https协议是由ssl+http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全

https的工作过程

  1. 客户端发起https请求
  2. 服务器端配置,服务器端必须有一套数字证书,即一对公钥和私钥
  3. 传送证书,即向客户端发送包含公钥和数字签名等信息。
  4. 客户端解析证书,即验证证书传递的公钥是否有效,若无问题则生成一个随机值(私钥),用证书对随机值进行加密。传送证书与解析证书是非对称加密。
  5. 传递加密信息,即传送证书加密后的随机值
  6. 服务端解密信息,服务端使用公钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密,所谓对称加密就是将信息和私钥通过加密算法混合在一起。
  7. 传递加密后的数据
  8. 客户端使用之前生成的私钥解密数据

https优缺点

优点:

  1. 对谷歌SEO优化更好
  2. 安全性,https仍然是现行架构下最安全的解决方案。确保数据发送到正确的客户端和服务器;防止数据在传递过程中被窃取;大幅增加了中间人攻击的成本。

缺点:

  1. 使用https会大幅延长页面的加载时间。而其加密范围有限,SSL证书信用链体系不安全。
  2. 越强大的SSL证书费用越高,增加了网站维护成本
  3. https连接缓存不如http高效,增大了流量成本
  4. https握手阶段费时,会降低网站响应速度。