http和https有什么区别(一文了解HTTP和HTTPS的本质)

   更新日期:2024.05.17


Http基于tcp协议,默认为端口80。它有什么特点?它基于请求和响应。如果你抓取一个包,你可以看到http协议有一个请求消息和一个响应消息,它是一个无状态协议和无连接协议。


没有连接意味着:


http协议一次只能处理一个请求,这就限制了我们每个连接只能处理一个请求,也就是服务器处理完客户的一个请求后就会断开连接,也就是一个连接处理一个请求。


还有其他后续请求需要重新启动连接。这种方法其实是为了节省时间,但是一般的网页比较复杂,可能需要在一个连接中处理多个请求。这时,我们不 我们不想处理完一个请求,所以我们断开连接,但是我们想在一个连接中处理多个请求。因此,在这个协议中定义了一个新的功能,称为保持活动机制,它可以保持我们的一个连接。我们保留之后,就变成了一个长链接。


无状态意味着:


也就是这个协议对客户端没有记忆能力,导致了一个问题,比如一个请求断开,这个请求中的一个消息没有保留。然后下一个要求又来了。那么这个时候想用最后一个请求怎么办呢?那 当需要重发时。


比如使用淘宝,用户需要先登录,然后购买商品。那个登录是请求,买商品是另一个请求。购买商品有必要先登录吗?这个时候,我希望他能帮我保留一些与登录相关的信息。我该怎么办?这个时候应该采取什么样的机制呢?它是一个cookie机制和一个会话机制。


明文是未经加密的邮件。所以可以看到账号的密码,很不安全,不会认证 quot身份 quot双方的。比如我们有一个客户端,想和服务器通信,中间有第三方的话,会拦截篡改消息。因为客户端和服务器没有经过认证,中间的第三方可以窃取消息,修改后再发送给服务器。这是一个非常不安全的地方,这是http协议非常明显的缺点。基于这个缺点,HTTPS应运而生,也就是超文本传输安全协议。


Https协议是加密的,它的消息叫做密文。没有相关的钥匙,你可以 看不到里面具体的消息,也可以确保我们的一条消息可以避免被窃取。



http + 加密 + 身份认证 + 完整性 = HTTPS



https协议是基于tcp的443端口。我们经常把https称为披着ssl协议外壳的http协议。http协议和https协议都是基于TCP协议,但是对于https协议,先有一个ssl协议,需要先用一个ssl包加密。httpS网络中数据包封装的过程:先封装一个ssl协议头,再封装一个http协议,所以需要先基于一个ssl进行加密,然后在加密的基础上发送HTTP消息。


Ssl协议有一个非常复杂的握手过程。不是tcp的这个握手,是我们ssl握手的过程。这个过程很复杂,


你可以看看这张照片:


这个图的过程其实很复杂。让 让我们用一个简单的例子来帮助你理解这个过程。客户端希望与服务器建立连接。


比如这个女生是客户。这个男孩是个服务员。客户端将与服务器建立https连接。男生也很真诚,于是他说好啊,既然你想和我建立联系,那就 我们先建立一条安全通道。也就是ssl握手的过程。


第一条消息是由客户端发起的。所以它 被称为客户端问候消息。包括消息客户端支持的所有加密方法。男生会在女生告知的加密方式中选择相同的加密方式,也就是会选择相同的语言进行交流。


第二条消息是男生根据女生发的第一条消息回复的一条消息。刚才客户端叫客户端你好,现在男孩 的回复叫做服务器你好。


当然,作为一个绅士,男孩想表达他的诚意。他把自己的身份证给了女孩,说明我是合法公民,相当于服务器的一个证书,给了客户端。然后客户端获得这个证书,其中包含一些关键信息。所以拿到这个证书后,她在本地默默生成了一个密钥。该密钥用于加密后续的传输数据,即加密http协议的后续交互消息。她以某种方式告诉男孩关键信息。男孩们也写了下来。它写下来之后,还会发消息告诉这个客户端,我写下来了。之后,我们将使用这种加密方法进行安全聊天。至此,我们的ssl握手结束了。


刚才那是简单的流程,下图是详细版。


客户端在左边,服务器在右边。


向服务器发送握手握手消息,并向服务器发送所有加密规则。服务器收到后发回一个server hello,其中包含一组加密算法和一个ID消息,以证书的形式发送给浏览器。第二条消息是server hello,第三条消息也是我们的一个证书。获得证书后,客户端验证其证书,看其身份是否合法。如果证书可信,客户端会在本地静默生成一个密钥,然后在生成密钥后告诉服务器这个密钥。客户密钥交换是一个交换的客户密钥,他将把一个加密的包描述发送给他的客户。我要做的就是把我本地生成的密钥告诉客户端,服务器收到后会确认。然后ssl握手就结束了。


总结:


首先加密功能是用客户端生成的密钥加密,身份认证是用服务器颁发的证书来完成的。只有服务器发送证书,这称为单向身份验证。如果有的网站安全要求比较高,可以做双向认证!只有服务器发送一个证书进行单一认证,所以如果要做双向认证,就意味着客户端和服务器都要进行认证,互相交换证书。也就是说,我的客户端要向CA申请一个证书,然后把这个证书发给服务器,这样服务器就可以认证我的客户端 的身份。


完整性是为了防止第三方篡改消息。有一种称为MD5的散列算法,用于散列。相当于我在客户端放了一个补丁的消息,然后用这个补丁把消息发送给服务器,服务器收到后就可以验证比较这个总结的正确性。此摘要与客户端上的补丁相同吗?如果它们相同,则意味着该消息没有被篡改。


面试官经常问的一个问题是:https协议和http协议的区别。



第一:安全性



从安全角度来说,https协议比http协议更安全,因为http是明文,容易受到攻击,没有办法认证身份,保证数据的完整性。https协议呢?它加密密文,认证身份,防止消息被篡改,非常安全。这是他们之间第一个非常重要的区别。



第二:灵活性



http是tcp的80端口,https是tcp的443端口,灵活性不同,没有http中复杂的握手过程。https有很高的技术门槛,因为ssl的实现过程比较复杂,有些加密,有些密钥计算,有些技术比较复杂。如果要开发基于这种技术的网站,其技术要求会更高。



第三:速度



很明显http协议肯定快。因为它不 不需要复杂的ssl握手,它 它非常快。Https协议需要经过一些复杂的安全流程,因此需要良好的服务器性能。如果服务器资源不足,没有办法承载这种复杂的加密算法,也会导致我们用户的访问速度变慢。



第四:经济适用度



是http协议,它不 我没有额外的费用。但是https协议,要在CA中颁发证书,是要花钱的,年费大概600到1000,还有一些技术支持等费用。相对来说比较贵,https的优势又那么明显。但是还是有一些网站,比如一些小公司,因为对服务器要求比较高,可能用不起。

王者之心2点击试玩

https和http区别如下:
1、http的URL 以http:// 开头,而https 的URL 以https:// 开头
2、http 是不安全的,而 https 是安全的
3、http 标准端口是80 ,而 https 的标准端口是443
4、在OSI 网络模型中,http工作于应用层,而https 工作在传输层
5、http 无法加密,而https 对传输的数据进行加密
6、http无需证书,而https 需要CA机构颁发的SSL证书



  • 15230064705 :https和http有什么区别?
    缪冉卫3240 :答:二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。二...
  • 15230064705 :https和http的区别是什么
    缪冉卫3240 :答:一、传输信息安全性不同 1、http协议:是超文本传输协议,信息是明文传输。如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息。2、https协议:是具有安全性的ssl加密传输协议,为浏览器和服务器之间的通信加密,确保数据传输的安全。二、连接方式不同 1、http协议:http的连...
  • 15230064705 :http和https有什么区别?
    缪冉卫3240 :答:https和http区别如下:1、http的URL 以http:// 开头,而https 的URL 以https:// 开头 2、http 是不安全的,而 https 是安全的 3、http 标准端口是80 ,而 https 的标准端口是443 4、在OSI 网络模型中,http工作于应用层,而https 工作在传输层 5、http 无法加密,而https 对传输的数据进行加...
  • 15230064705 :http和https的区别是什么
    缪冉卫3240 :答:http和https的区别 1. HTTP 的URL 以http:// 开头,而HTTPS 的URL 以https:// 开头 2. HTTP 是不安全的,而 HTTPS 是安全的 3. HTTP 标准端口是80 ,而 HTTPS 的标准端口是443 4. 在OSI 网络模型中,HTTP工作于应用层,而HTTPS 工作在传输层 5. HTTP 无法加密,而HTTPS 对传输的数据进行...
  • 15230064705 :请问http和https的区别是什么?
    缪冉卫3240 :答:1、安全性不同 HTTP 明文传输,数据都是未加密的,安全性较差;HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好。2、是否需要CA证书 使用 HTTPS 协议需要到 CA(Certificate Authority,数字证书认证机构) 申请证书,一般免费证书较少,因而需要一定费用。而使用 HTTP 协议是不需要用到CA证书的。3...
  • 15230064705 :http和https有什么区别?
    缪冉卫3240 :答:https和http区别如下:1、http的URL 以http:// 开头,而https 的URL 以https:// 开头2、http 是不安全的,而 https 是安全的3、http 标准端口是80 ,而 https 的标准端口是4434、在OSI 网络模型中,http工作于应用层,而https 工作在传输层5、http 无法加密,而https 对传输的数据进行加密6、...
  • 15230064705 :域名的协议头“http”和“https”有什么不同?
    缪冉卫3240 :答:一、传输信息安全性不同 1、http协议:是超文本传输协议,信息是明文传输。如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息。2、https协议:是具有安全性的ssl加密传输协议,为浏览器和服务器之间的通信加密,确保数据传输的安全。二、连接方式不同 1、http协议:http的...
  • 15230064705 :什么是http和https?
    缪冉卫3240 :答:http和https的区别:1、安全性不同。http是超文本传输协议,信息是明文传输的。https是具有安全性的ssl证书加密的传输协议。所以https比http更安全2、默认端口不同。http的默认端口是80,https的默认端口是443。3、协议不同。http是无状态的协议,而https是由ssl+http构建的可进行加密传输、身份认证的网络...
  • 15230064705 :https和http协议的区别
    缪冉卫3240 :答:HTTPS和HTTP的区别主要为以下四点:一、HTTPS协议需要到证书颁发机构CA申请证书,HTTP不用申请证书;二、HTTP是超文本传输协议,属于应用层信息传输,HTTPS 则是具有SSL加密传安全性传输协议,对数据的传输进行加密,相当于HTTP的升级版;三、HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,...
  • 15230064705 :HTTPS和HTTP有什么区别?
    缪冉卫3240 :答:表示连接是安全的。4.SSL证书:HTTPS需要使用SSL证书来进行加密和认证。这个证书是由权威的证书颁发机构(CA)签发的,用于验证网站的身份和安全性。HTTP不需要使用SSL证书。5.安全性:由于数据加密和认证的存在,HTTPS比HTTP更加安全。使用HTTPS可以防止信息被窃听、篡改和伪造。
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网