HTTP和HTTPS的区别

HTTP

超文本传输协议,是一个基于请求与相应,无状态的,应用层协议,长基于TCO/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。

HTTP特点

  1. 无状态:协议对客户端没有状态存储,对事物处理没有记忆能力,比如访问一个网站需要反复进行登录操作。
  2. 无连接:HTTP/1.1之前,由于无状态特点,每次请求需要通过TCP三次握手四次挥手,和服务器重新建立连接。比如某个客户端在短时间短时间多次请求同一个资源服务器并不能区别是否已经响应过用户的请求,所以每次需要重新响应请求,需要耗费不必要的时间和流量。
  3. 基于请求和响应:基本的特性,由客户端发起请求,服务端响应。
  4. 简单快速、灵活
  5. 通信使用明文、请求和响应不会对通信方进行确认、无法保护数据的完整性。

HTTP报文组成

  1. 请求行:包括请求方法、URL、协议版本
  2. 请求头
  3. 请求正文
  4. 状态行
  5. 响应头
  6. 响应正文

HTTP和HTTPS的区别_第1张图片

HTTP的缺点

  1. 通信使用明文(不加密),内容可能会被窃听。
  2. 不验证通信方身份,因此有可能遭遇伪装。
  3. 无法证明报文的完整性,所以有可能已遭篡改。

HTTPS

HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

HTTP和HTTPS的区别_第2张图片

HTTPS并非是应用层的一种新协议。只是HTTP通信接口部分用SSL(Secure Socket Layer)和TLS(Transport Layer Security)协议代替而已。通常,HTTP直接和TCP通信。当使用SSL时,则演变成先和SSL通信,再由SSL和TCP通信了、简言之,所谓HTTPS,其实就是身披SSL协议这层外壳的HHTP。

HTTPS通讯方式

HTTP和HTTPS的区别_第3张图片 

  1. 客户端向服务端发送请求
  2. 服务端返回数字证书
  3. 客户端用自己的CA(主流的CA机构证书一般都内置在各个主流浏览器中)公钥去解密证书,如果证书有问题会提示风险
  4. 如果证书没问题,客户端会生成一个对称加密的随机秘钥然后再和刚刚解密的服务器端的公钥对数据进行加密,然后发送给服务器端
  5. 服务器端收到以后会用自己的私钥对客户端发来的对称秘钥进行解密
  6. 之后双方就拿着这个对称加密秘钥来进行正常的通信

为什么HTTPS安全

  1. SSL不仅提供加密处理,加密方式为混合加密。
  2. SSL而且还使用一种被称为证书的手段,可用于确定方。证书有值得信任的第三方机构颁发,用以证明服务器和客户端是实际存在的。另外,伪造证书从技术角度来说是异常困难的一件事。所以只要能够确认通信方持有的证书。

HTTP和HTTPS的区别_第4张图片

加密方法

对称加密

加密和解密同用一个密钥的方式称为共享密钥,也被叫做对称密钥加密

对称加密的方式效率比较低,加密速度慢。另外对称加密存在安全隐患的问题,对称加密的密钥必须要传到对方才能解密,要是对方在密钥传输的过程获取到密钥,那不是密钥失去了加密的意义,所以完全使用对称加密也是不安全的。

非对称加密

公开密钥加密使用一对非对称的密钥。一把叫做私有密钥(private key),另一把叫做公开密钥(public key)。顾名思义,私有密钥不能让其他任何人知道,而公开密钥则可以随意发布,任何人都可以获得。公钥加密,私钥解密

使用公开密钥加密方式,发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。

那么非对称加密就一定安全吗?非对称加密也不安全,为什么?因为存在中间伪造公钥和私钥,加入在公钥传给对方的时候,有人能获取到公钥,虽然它不能用你的公钥做什么,但是它截获公钥之后,把自己伪造的公钥发送个对方,这样对方获取的就不是真正的公钥,当对方用公钥进行加密文件,再讲文件发送给对方,这样即使截获人没有获取到真正的私钥,但是加密时的公钥截获人的,他获取到加密文件,只需要用自己的私钥进行解密就成功获取到文件了。

混合加密

顾名思义也就是对称加密和非对称加密的方式相结合

HTTP和HTTPS的区别_第5张图片

 

 

 

 

你可能感兴趣的:(计算机网络,http,https,网络协议)