http和HTTPS的区别

原创 2018年04月16日 20:44:57

数字证书就是经过CA认证过的公钥,而私钥一般情况都是由证书持有者在自己本地生成的,由证书持有者自己负责保管。具体使用时,签名操作是发送方用私钥进行签名,接受方用发送方证书来验证签名;加密操作则是用接受方的证书进行加密,接受方用自己的私钥进行解密。

1)  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协议安全。

2)  HTTPS的工作原理

我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取,所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。

1、客户端发起HTTPS请求

这个没什么好说的,就是用户在浏览器里输入一个https网址,然后连接到server的443端口。

2、服务端的配置

采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面。

这套数字证书就是经过CA认证过的公钥,而私钥一般情况都是由证书持有者在自己本地生成的,由证书持有者自己负责保管。如果对公钥和私钥不太理解,可以想象成一把钥匙和一个锁头,只是全世界只有你一个人有这把钥匙,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。

3、传送证书

这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。

4、客户端解析证书

这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。

如果证书没有问题,那么就生成一个随机值(私钥),然后用证书(公钥)对该随机值进行加密,就好像上面说的,把随机值用锁头锁起来,这样除非有钥匙,不然看不到被锁住的内容。

5、传送加密信息

这部分传送的是用证书加密后的随机值(私钥),目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。

6、服务段解密信息

服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密,所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。

7、传输加密后的信息

这部分信息是服务段用私钥加密后的信息,可以在客户端被还原。

8、客户端解密信息

客户端用之前生成的私钥解密服务段传过来的信息,于是获取了解密后的内容,整个过程第三方即使监听到了数据,也束手无策。

3)  HTTPS的优点

1、SEO方面

谷歌曾在2014年8月份调整搜索引擎算法,并称“比起同等HTTP网站,采用HTTPS加密的网站在搜索结果中的排名将会更高”。

2、安全性

尽管HTTPS并非绝对安全,掌握根证书的机构、掌握加密算法的组织同样可以进行中间人形式的攻击,但HTTPS仍是现行架构下最安全的解决方案,主要有以下几个好处:

(1)、使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;

 

(2)、HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。

(3)、HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。

4)  HTTPS的缺点

1、SEO方面

据ACM CoNEXT数据显示,使用HTTPS协议会使页面的加载时间延长近50%,增加10%到20%的耗电,此外,HTTPS协议还会影响缓存,增加数据开销和功耗,甚至已有安全措施也会受到影响也会因此而受到影响。

而且HTTPS协议的加密范围也比较有限,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用。

最关键的,SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行。

2、经济方面

(1)、SSL证书需要钱,功能越强大的证书费用越高,个人网站、小网站没有必要一般不会用。

(2)、SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗

(3)、HTTPS连接缓存不如HTTP高效,大流量网站如非必要也不会采用,流量成本太高。

(4)、HTTPS连接服务器端资源占用高很多,支持访客稍多的网站需要投入更大的成本,如果全部采用HTTPS,基于大部分计算资源闲置的假设的VPS的平均成本会上去。

(5)、HTTPS协议握手阶段比较费时,对网站的相应速度有负面影响,如非必要,没有理由牺牲用户体验。


面试常考点:http和https的区别与联系

感谢原作者,本文转载自http://www.mahaixiang.cn/internet/1233.html 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协...
  • xionghuixionghui
  • xionghuixionghui
  • 2017-03-30 22:40:41
  • 5802

HTTP协议与HTTPS的区别

HTTP协议 HTTP协议主要应用是在服务器和客户端之间,客户端接受超文本。 服务器按照一定规则,发送到客户端(一般是浏览器)的传送通信协议。与之类似的还有文件传送协议(filetrans...
  • permike
  • permike
  • 2016-09-06 14:11:28
  • 2003

http和https 区别和用法

HTTP http是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。 http通常承载于TCP之上,有时也承载于TLS或SSL协议层之上,这就是常说的http http 无状...
  • xkweiguang
  • xkweiguang
  • 2016-07-21 15:46:15
  • 3717

HTTPS和HTTP的区别

什么是 HTTPS? HTTPS (基于安全套接字层的超文本传输协议 或者是 HTTP over SSL) 是一个 Netscape 开发的 Web 协议。 你也可以说:HTTPS = H...
  • whatday
  • whatday
  • 2014-07-26 17:01:06
  • 53369

Http协议与https协议区别

http协议时超文本传输协议。 https是安全的超文本传输协议,是安全版的http协议,使用安全套接字层(SSL)进行信息交换。 https协议主要针对解决http协议以下不足: 1.通信...
  • hsd2012
  • hsd2012
  • 2016-04-07 16:07:18
  • 3477

HTTP与HTTPS不同请求的区别

1. 我把所有的URL /与代码。我这个来自杰夫・德沃尔现在,它的精细工作:function request(const AUrl, AData: AnsiString; blnSSL: Boolea...
  • u012108436
  • u012108436
  • 2015-11-10 12:19:49
  • 1072

https与webService区别

1、(1)httpservice通过post和get得到你想要的东西 (2)webservice就是使用soap协议得到你想要的东西,相比httpservice能处理些更加复杂的数据类型 (3)h...
  • heng_yan
  • heng_yan
  • 2016-11-11 17:34:41
  • 2649

HTTP、HTTPS、FTP和TCP的区别

一、概念 HTTP,即超文本传输协议,是 HyperText Transfer Protocol的缩写。浏览网页时在浏览器地址栏中输入的URL前面都是以"http://"开始的。HTTP...
  • scratlc
  • scratlc
  • 2017-03-22 13:51:02
  • 726

HTTP、HTTPS、FTP和TCP的区别?

一、概念 HTTP,即超文本传输协议,是 HyperText Transfer Protocol的缩写。浏览网页时在浏览器地址栏中输入的URL前面都是以"http://"开始的。HTTP定义了信...
  • hdhai9451
  • hdhai9451
  • 2015-05-14 18:17:10
  • 7573

HTTP代理与HTTP区别

HTTP代理的几种方式 Wireshark抓包 第一种方法:直接请求 普通的提交HTTP请求的过程: 直接连接远程服务器后,当连接成功时向服务器提交HTTP头,注意看看大概的格式 GET / HTTP...
  • WHACKW
  • WHACKW
  • 2016-09-27 15:13:03
  • 2632
收藏助手
不良信息举报
您举报文章:http和HTTPS的区别
举报原因:
原因补充:

(最多只允许输入30个字)