做人第一 学习第二

Http协议与https协议区别

前言

 

     可能在平时的开发中并没有特别注重协议传输这块的内容,但是作为一个BS开发的人员有必要了解一下这方面的内容,早些了解早些避免一些弯路,相信有一定网络基础的都知道如何查看一个网页是HTTP的还是HTTPS的。在这里就举个栗子:①打开浏览器,②在地址栏输入“百度”两个字,回车,③将地址粘贴出来,你会看到是HTTPS开头的。

HTTP

 

    作为一个IT攻城狮,遇到这种专业名词不会了就去查全称,这一次也不例外。HTTP(HyperText Transfer Protocol)超文本传输协议。其主要是应用在Web浏览器和网站服务器之间传送消息,HTTP以明文方式传送内容,不提供任何方式的数据加密。所以一旦有恶意攻击者取到了传输的报文就很容易读懂传输的数据,简而言之就是不安全的。像一些要求安全性高的网站一般都是HTTPS的,可以按照前言中的操作查看百度的,也可以随便打开一个网页进行查看。
 

原理

优点

 

    速度快,是互联网上应用最为广泛的一种网络协议。

缺点

 

    传输过程是明文,不安全。

HTTPS

 

    为了解决HTTP协议不安全这一个漏洞,出现了HHTPS(Hyper Text Transfer Protocol over Secure Socket Layer)协议,是HTTP+SSL,就是以安全为目标的HTTP通道,是HTTP的安全版,在HTTP基础上加入了SSL。其有两种方式,一、建立安全通道保证信息安全,二、确认网站的真实性,就需要用到数字签名的内容。
 

http协议时超文本传输协议。

https是安全的超文本传输协议,是安全版的http协议,使用安全套接字层(SSL)进行信息交换。

https协议主要针对解决http协议以下不足:

1.通信使用明文(不加密),内容可能会被窃听

2.不验证通信方身份,应此可能遭遇伪装

3.无法证明报文的完整性(即准确性),所以可能已遭篡改

http+加密+认证+完整性保护=https

https并非是应用层的一种新协议,只是http通信接口部分用SSL(Secure socket Layer)和TLS(Transport Layer Security)协议代替而已。通常,http是直接和tcp通信的,当使用SSL时,则演变成先和SSL通信,再由SSL和TCP通信了。
 

原理

 

    1.客户端发起HTTPS请求

    2.服务端制作证书(在网上发现一张讲解的图,非常清楚,直接拿来用咯)


 

3.传送证书

    这个证书就是公钥,还包括一些详细信息。就是上图中的左半部分。

    4.客户端解析证书

    参考上图中的右半部分,使用私钥解密,验证该证书的有效性。有效后客户端就可以和服务端进行消息的传送了。

    5.传送加密信息

     客户端可以传送加密后的信息给服务器

    6.服务器解密

      服务器使用私钥进行解密,解密后读取数据,将自己要发送给客户端的数据进行加密

    7.传输加密后的信息

     服务端将数据传送给客户端

    8.客户端解密信息

     客户端解密服务端传来的加密的信息

优点

 

    采用加密方式传输报文,传输安全

缺点

 

    需要去CA申请证书,而这种证书一般都不是免费的,所以需要一定的费用

    传输速度慢

总结

 

   在什么情况下用HTTP,什么情况下用HTTPS呢?个人认为在数据保密性特别强的业务中最好使用HTTPS,例如支付密码,登录密码这些功能上。HTTPS较HTTP,会使得浏览器响应变慢,这也是一大考验点。具体取舍,感兴趣的读者可以再去网上查看相关资料做出合理的选择。

 

此文如未标注转载均为本站原创,自由转载请表明出处 宋子宪博客 » Http协议与https协议区别

发表评论

游客 表情
送你一朵小花花~

帅人已评:(0)