Http请求和Https请求的区别

Posted vegetabledd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Http请求和Https请求的区别相关的知识,希望对你有一定的参考价值。

HTTP(Hypertext Transfer Protocol Vertion )超文本传输协议,被用于在web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截获了传输报文,就可以读取内容,所以不建议传输一些敏感信息。

为了解决这一缺陷,需要使用另一种协议,安全套接字超文本传输协议(HTTPS),为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL 协议,SSL依靠证书来检验服务器的身份,并且还为客户端与服务器之间的通信加密。

每次开网页时为什么要出现“http://”呢? 其实这个道理非常简单,因为你要获得网络上超文本信息,那么你肯定要遵循其超文本传输的规范。

基本概念:

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

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

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

HTTP与HTTPS的区别:

HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

HTTPS和HTTP的区别主要如下:

  1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

  2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

  3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

  4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

客户端在使用HTTPS方式与web服务器通信时有以下几个步骤:

(1)客户端使用HTTPS的URL访问web服务器,要求与web服务器建立SSL连接

(2)web服务器收到客户端请求后,会将网站的证书信息(包含公钥)传送给客户端

(3)客户端与服务器之开始协商SSL连接的安全等级,也就是信息加密的等级

(4)客户端根据双方同意的安全等级,建立会话密钥,然后利用公钥对会话密钥加密,并传送给服务器

(5)服务器利用自己的私钥解密出会话密钥

(6)服务器利用会话密钥与客户端进行通信

技术图片

HTTPS的优缺点:

优点:是加密传输、身份认证的网络协议,比HTTP安全,防止数据在传输过程中被窃取、改变,确保完整性。增加攻击成本。

缺点:不是绝对安全,加密范围有限、握手阶段比较费时、增加耗电、不如HTTP高效、需要花钱、通常需要绑定ip

 

 

 HTTPS解决的问题:

 

      1 . 信任主机的问题. 采用https 的server 必须从CA 申请一个用于证明服务器用途类型的证书. 改证书只有用于对应的server 的时候,客户度才信任次主机。所以目前所有的银行系统网站,关键部分应用都是https 的,客户通过信任该证书,从而信任了该主机,其实这样做效率很低,但是银行更侧重安全。这一点对我们没有任何意义,我们的server 采用的证书不管自己issue 还是从公众的地方issue,客户端都是自己人,所以我们也就肯定信任该server。
 
      2 . 通讯过程中的数据的泄密和被窜改

 

      1)一般意义上的https, 就是 server 有一个证书.

 

      a) 主要目的是保证server 就是他声称的server. 这个跟第一点一样.

 

      b) 服务端和客户端之间的所有通讯,都是加密的.

 

      i. 具体讲,是客户端产生一个对称的密钥,通过server 的证书来交换密钥,一般意义上的握手过程。
 
      ii. 加下来所有的信息往来就都是加密的,第三方即使截获,也没有任何意义,因为他没有密钥,当然窜改也就没有什么意义了。
 
      2)少许对客户端有要求的情况下,会要求客户端也必须有一个证书。
 
      a) 这里客户端证书,其实就类似表示个人信息的时候,除了用户名/密码, 还有一个CA 认证过的身份,个人证书一般来说上别人无法模拟的,所有这样能够更深的确认自己的身份。
 
      b) 目前少数个人银行的专业版是这种做法,具体证书可能是拿U盘作为一个备份的载体。

 

以上是关于Http请求和Https请求的区别的主要内容,如果未能解决你的问题,请参考以下文章

HTTP和HTTPS的区别

HTTP协议

HTTP协议

http和https之间的异同,get和post请求异同

HTTP协议工作原理(与HTTPS的区别)

前端面经(待整理)