{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

HTTPS有什么用?跟HTTP有什么区别呢?

AlanKeeneAlanKeene 回答10 收藏1
收藏问题

10条回答

jcc

jcc

回答于2022-06-22 19:53

很高兴回答这个问题。

HTTPS有什么用?和HTTP有什么区别?

最近一直在做安全方面的开发,我来回答下。

HTTPS是使用了安全技术的HTTP协议。

HTTP的全称是超文本传输协议(HyperText Transfer Protocol)。HTTPS则是以安全为目标的HTTP通道(HyperText Transfer Protocol Over SecureSocket Layer)。它们的区别就在于一个网络传输是非安全的,另一个网络传输是安全的。

为什么要使用HTTPS?

普通的HTTP协议采用明文传输,传送的消息容易泄漏及被篡改,也无法验证消息的可靠性和完整性。比如说向服务器传输的数据中携带了自己的银行账户和密码,使用明文的话,第三方只要拦截传输过程中的数据包,账户和明文就很容易被别人窃取。又或者服务器给你回了一个指令,被人从中拦截,篡改为他的内容,你的客户端接收到时,就会按照篡改后的内容执行,非常不安全。再就是服务器给客户端发了条消息,因为网络原因,数据丢了一半内容,客户端又如何知道这个情况呢。

HTTPS如何实现数据的安全传输的。

先简单介绍几个概念。

  • 密钥

密钥是把明文转换为密文或者将密文转换为明文的算法中输入的参数。它分为两部分,公钥和私钥。有了私钥能推导出公钥,反过来则不行。可以简单理解为钥匙和锁头的关系,即有了钥匙能配出锁头来,但有锁头想配出钥匙来则很难。

  • 证书

证书是公钥的载体,里面除了公钥外,还有证书有效期,颁发者信息等其它内容。

  • 摘要

摘要就是其字面上的意思,对一段内容进行简略抽象。

  • 加解密

加密就是把一段内容使用公钥,转换为另一种无法识别的内容,解密就是使用私钥把加了密的内容还原成原始的内容。

  • 签名验签

签名可以理解为另一种形式的加密,它使用私钥把原始内容转换为无法识别的内容,验签则是拿着原始内容以及签名内容,使用公钥验证它们是否一致。

下面再说下安全处理过程。

  • 给消息生成摘要后,对摘要做签名,使得客户端能验证消息来源的可靠性和完整性。

服务器在给客户端的消息前,会先给消息生成摘要,再用自己的私钥给摘要做签名,最后再把签名和私钥对应的证书一起附在消息最后,发给客户端。客户端收到消息后,先验证证书的有效性,如果证书无效,直接pass以确保消息的可靠性。然后对消息做摘要,再拿证书里的公钥结合摘要验证签名是否有效,这样即使消息被篡改或者破坏了了,因为生成的摘要不同,签名也就不一样,可以确保消息的完整性以及未被篡改。

  • 通过对消息加密,避免消息内容被他人解读。

服务器和客户端在传输消息前,会先交换双方的密钥,然后传输过程都是一方用密钥对消息加密,另一方用密钥对消息解密。而第三方即使拦截了数据包,也会因为没有密钥而无法解读消息,避免其中的具体内容泄漏。

总之,相比较HTTP协议,虽然HTTPS的处理逻辑要复杂得多,但在互联网安全日益重要的今天,它已经成为了一个最常用的网络传输协议。

以上就是HTTP和HTTPS的一些概念性介绍,更复杂和详细的实现原理这里就不展开了,希望对你有帮助,谢谢。

评论0 赞同0
  •  加载中...
alogy

alogy

回答于2022-06-22 19:53

简单介绍一下概念,HTTPS(HyperText Transfer Protocol Secure),超文本传输安全协议,而HTTP(HyperText Transfer Protocol),超文本传输协议。很明显,关键区别在于“安全”,因为HTTP在因特网上传输的数据都是“一丝不挂”(明文)的,任何人都可能去窃听、劫持,甚至篡改你的数据,正因为如此,才有了HTTPS的出现,它的本质就是给你传输的数据“打个码”(加密),想偷窥你信息的人就无能为力了,保证了你的隐私等。

那HTTPS是如何保证安全的呢?

既然HTTP是明文传输的,要想安全传输,给它加个密不就完了吗?说的没错,事实上也是这么干的,可加密这事儿,也并没那么简单,流程是咋样的,我给你简单捋一捋。

加密,自然需要解密,而在我们计算机密码学中有几种常用的加密方式,比如,一种叫对称加密,意思加密和解密用的是同一把钥匙;还有一种叫非对称加密,加密和解密用的是不同的钥匙,公钥加密,私钥解密,私钥加密,公钥解密,反正麻烦的很。

无论使用上述哪种加密方式,都会涉及到传输“钥匙”的过程,否则你加了密,你不把钥匙给对方,对方怎么看的懂你的数据呢?所以这把“钥匙”要如何在网络上不被别人窃取的情况下安全的给到对方成了关键中的关键。

HTTPS的做法就是使用“数字证书”,可是,又如何保证数字证书的安全呢?有时候,在虚拟的网络世界中,光有技术是搞不定的,终归是要回到现实中的实体管制。

所以,需要某一个(些)被大家认可的权威机构(通常叫CA,Catificate Authority)来做这一件事情,权威机构下发的证书本身默认就是得到了操作系统、浏览器等信任的。权威机构亲自给你制作证书,然后你将证书放到服务器上,后续就完美的解决了所有信任问题。

具体保证数据安全传输的整个过程大致如下,看完可能会有疑惑为什么要大费周章的去搞一个数据加密的密钥,主要原因是因为对称密钥算法加密的数据在解密时会更快一些。

权威机构给的证书是经过权威机构私钥加密的,证书中包含服务器的公钥,服务器将权威机构给的证书下发给客户端,证书解密的公钥则默认内置在Windows、Linux、macOS等操作系统中,操作系统上的应用(客户端)使用内置这个的公钥对证书进行解密,得到服务器的公钥,然后生成一个用于加密数据的密钥,同时对数据进行加密,再用服务器的公钥加密这个密钥,发给服务器,服务器使用自己的私钥解密,得到加密数据的密钥,然后用此密钥解密收到的数据,便大功告成了。

除了安全,HTTPS还跟HTTP有啥区别?

还有一些主要区别就是,HTTPS所用的证书是需要购买的,从技术上讲本身也更复杂一些,另外,HTTP会更快一些,因为不涉及到加密解密。还有就是,HTTPS使用的端口不一样,HTTPS使用443,HTTP使用80,但这个只是共识。

总而言之,都有一些优缺点,但还是建议使用HTTPS,个人认为安全更重要,以上,希望能帮到你。

评论0 赞同0
  •  加载中...
DobbyKim

DobbyKim

回答于2022-06-22 19:53

你好,作为一名IT工程师,我来回答一下这个问题!

HTTPS, 全称是Hyper Text Transfer Protocol Secure,HTTPS相比HTTP多了这个Secure,顾名思义,简单来讲就是多了这个安全。那么两者之间具体到底有哪些区别呢?



HTTP是缺省工作在TCP协议80端口,用户访问的HTTP开头的网站都是标准的HTTP服务,需要强调的是,HTTP所封装的信息都是明文的,通过抓包工具是可以解析到信息的具体内容的,这意味着什么呢,比如如果这些信息中包含有你的银行卡账号密码之类的,这样是非常不安全的。



那么怎么办呢,有什么办法可以避免这个问题呢,这时候HTTPS就闪亮登场了,HTTPS是缺省工作在TCP协议443端口,它的工作流程具体是这个样子的,多了好几层保障:

  1. TCP三次同步握手;
  2. 客户端验证服务器数字证书,如果通过,则进入下一步;
  3. DH算法协商对称加密算法的密钥、Hash算法的密钥;
  4. SSL安全加密隧道协商完成;
  5. 网页以加密方式传输。



所以,HTTPS是很有用也是很有必要的,毕竟你也不想在上网的时候自己的敏感信息被别人窃取看到了吧。以上就是我的个人观点,大家有什么看法可以在评论区留言。



如果喜欢我的分享可以点个赞或加个关注支持一下,谢谢!

评论0 赞同0
  •  加载中...
codeKK

codeKK

回答于2022-06-22 19:53

HTTP

HTTP协议是超文本传输协议的缩写,英文是Hyper Text Transfer Protocol。它是从WEB服务器传输超文本标记语言(HTML)到本地浏览器的传送协议。

HTTPS

HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):一般理解为HTTP+SSL/TLS,通过 SSL证书来验证服务器的身份,并为浏览器和服务器之间的通信进行加密。



HTTPS与HTTP区别

  • HTTPS是HTTP协议的安全版本,HTTP协议的数据传输是明文的,是不安全的,HTTPS使用了SSL/TLS协议进行了加密处理。
  • http和https使用连接方式不同,默认端口也不一样,http是80,https是443。

HTTPS作用

  • 请求信息明文传输,容易被窃听截取。
  • 数据的完整性未校验,容易被篡改
  • 没有验证对方身份,存在冒充危险



斜阳说

HTTPS对很多产商最大的作用就是解决http劫持,而且这个劫持是中国这些伟大的运营商做的,我遇到过的就有电信,移动,联通,铁通的http劫持,经常可以看到自己的网站右下角有一个同行广告,更坑的是,有的时候我自己的网站还没渲染出来,广告已经渲染出来了。

这有多恶心就不用我多说了,这些运营商明目张胆,嚣张至极。逼得我不得不用HTTPS

评论0 赞同0
  •  加载中...
aikin

aikin

回答于2022-06-22 19:53

首先要了解http协议,它是一个应用层协议,是客户端和服务器之间通信规则,解决如何封包和解包的问题。我们的浏览器是http客户端,web服务器也可以称为http服务器,客户端可以向服务器发送请求,服务器根据请求作出响应,请求方式常用的有get、post、put,还有connect、delete、head、options、trace等。这是明文发送请求,数据在请求体中。

https是http和ssl的组合,可以对数据进行加密传输、身份认证,现在多为http和tls的组合,tls是ssl的升级版,它是公钥证书,是由ca机构签发的证书,一般金融机构的证书由中国人民银行颁发,非金融机构由中国电信颁发;原理涉及到密码学的对称加密和非对称加密,web网站生成一组密钥对,把公钥给到ca机构,ca机构自己也有密钥对,ca机构用自己的私钥对web的公钥进行加密(非对称加密)生成ssl证书,证书里包含签发机构、证书有效期、网站域名等信息。用户在访问服务器的时候会发送一些一些证书和支持的算法,服务器根据接收到的数据返回自己的证书,客户端接收后进行验证,验证的内容就是上面所说证书的一些信息,得到web的公钥,再随机生成一堆数字当作对称加密的密钥,与公钥加密后发给服务器,服务器用自己的私钥解密得到对称加密的密钥,这样客户端和服务器就有了密钥,之后就可以安全通信了。

评论0 赞同0
  •  加载中...
lemanli

lemanli

回答于2022-06-22 19:53

https就是http和TCP之间有一层SSL层,这一层的实际作用是防止钓鱼和加密。防止钓鱼通过网站的证书,网站必须有CA证书,证书类似于一个解密的签名。另外是加密,加密需要一个密钥交换算法,双方通过交换后的密钥加解密。

http与https有什么区别呢?本文详解http和https的区别。

只要上过网的朋友一定接触过“HTTP”,每次开网页的时候,不管是什么网址,其前面都会出现HTTP字样,比如 “http://www.jzxue.com”、“http://62.135.5.7”等等,而有些时候打开如银行等对安全性要求很高的网站的时候其网 址的前缀又会变作“https”,这两个前缀到底是什么意思?有什么作用呢?相信很多用户朋友对此并不了解。下面就由我给大家解释一二。

http的全称是Hypertext Transfer Protocol Vertion (超文本传输协议),说通俗点就是用网络链接传输文本信息的协议,我们现在所看的各类网页就是这个东东。每次开网页时为什么要出现“http://”呢? 其实这个道理非常简单,因为你要获得网络上超文本信息,那么你肯定要遵循其超文本传输的规范,就如同你是“天地会”成员,你和其他“天地会”成员接头时首 先要说出“地震高岗,一派西山千古秀!”和“门朝大海,三合河水万年流”这样的接头暗号,说出后才能和会友进行沟通。所以每次开网页出现的 “http://”就如同上面所讲的接头暗号,当暗号正确后才能获得相关信息。

看完了上面的解释,或许你已经懂得是为什么每次开网页时要出现“http”了。那么接下来我们再谈谈为什么有时候网页的接头暗号又会变作“https”呢?

HTTPS的全称是Secure Hypertext Transfer Protocol(安全超文本传输协议),是在http协议基础上增加了使用SSL加密传送信息的协议。我们还是用天地会接头的例子来讲,大家可能觉得每 次天地会接头都是使用“地震高岗,一派西山千古秀!”这类妇孺皆知的接头暗号,这样的组织还有什么安全性可言?只要说出了暗号那么就可能获得天地会的相关 秘密。事实上并不是这样的,如果仅仅是靠一个妇孺皆知的接头暗号进行信息保密,天地会可能早被清兵围剿了,何来那么多传奇故事呢?他们之间的交流除了使用 了接头暗号外,

评论0 赞同0
  •  加载中...
JasonZhang

JasonZhang

回答于2022-06-22 19:53

Http是内容明文传输,对于安全要求高的平台就非常危险,因为你输入内容与查看内容可以轻易被有/心人嗅探到!

Https是在http之上增加了加密功能,采用服务器证书方式对Web服务器的请求与响应内容进行加密!这样在网络传输上内容是密文传输,别人无法正常查看!

评论0 赞同0
  •  加载中...
Leo_chen

Leo_chen

回答于2022-06-22 19:53

HTTPS和HTTP是目前常用的两种传输协议,不过随着网络安全形势的发展,目前HTTPS协议已经在各大企事业单位的网站上开始使用,主要原因是HTTPS有着可以保障数据信息安全的优势,相较于HTTP协议,会容易受到用户信任,关于二者的定义和作用区别,主要有以下几方面:

HTTP:超文本传输协议(Hypertext Transfer Protocol)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。

HTTPS:HTTPS (Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在HTTP的基础下加入SSL,HTTPS的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。

HTTP和HTTPS有什么区别

HTTP协议传输的数据都是明文数据,安全性较低,数据泄露风险较大,而HTTPS则是在HTTP基础上做了加密,简单来说就是HTTP的安全版,即在HTTP下加入SSL安全层,HTTPS的基础就是SSL,因此传输加密的加密内容就要用到SSL。

HTTPS主要作用包括两方面,一是数据加密,保证数据传输的安全性,二是确认访问网站的真实性,起到身份验证的作用。

HTTP和HTTPS区别主要包括以下几点:

1) 使用HTTPS协议一般需要用到CA机构颁发的证书,免费证书较少,购买证书需要一定的费用。

2) HTTP是超文本传输协议,信息时明文传输,安全性较低,而HTTPS则是使用了SSL加密传输,安全性高。

3) HTTP和HTTPS使用的是完全不同的连接方式,使用的端口也有所区别,HTTP使用的是80端口,HTTPS使用的是443端口。

更多内容请关注公众号:JoySSL

JoySSL(www.joyssl.com)推出免费版品牌证书,可以体验试用90天:

评论0 赞同0
  •  加载中...
Jenny_Tong

Jenny_Tong

回答于2022-06-22 19:53

相同的是web通信协议,不同的是HTTPS在传输层和应用层之间插入了SSL/TLS协议,提供安全服务。

评论0 赞同0
  •  加载中...
SmallBoyO

SmallBoyO

回答于2022-06-22 19:53

https在国内很多环境下已经不安全了,还是会被解密嗅探,流量劫持等等。当然对浏览器,证书,有一定了解的人是可以避免被劫持的。

评论0 赞同0
  •  加载中...

相关问题

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<