美文网首页
HTTP 和 HTTPS的区别

HTTP 和 HTTPS的区别

作者: 抽疯的稻草绳 | 来源:发表于2020-12-24 08:09 被阅读0次

    1.Http是超文本传输协议,数据明文传输,所以会被抓包导致信息泄露,有安全风险问题!
    2.Https 则是具有安全性的SSL加密传输协议。(http和TCP 之间加了一层TSL 或者 SSL的安全层)
    3.HttpHttps使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。
    4.Http的连接很简单,是无状态的。
    5.HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议。
    6.Https协议需要到CA付费申请证书,

    HTTP是应用层协议,同其他应用层协议一样,是为了实现某一类具体应用的协议,并由某一运行在用户空间的应用程序来实现其功能。HTTP是一种协议规范,这种规范记录在文档上,为真正通过HTTP协议进行通信的HTTP的实现程序。
    HTTP是一种无状态协议,即服务器不保留与客户交易时的任何状态。这就大大减轻了服务器记忆负担,从而保持较快的响应速度。
    HTTP是一种面向对象的协议。允许传送任意类型的数据对象。它通过数据类型和长度来标识所传送的数据内容和大小,并允许对数据进行压缩传送。当用户在一个HTML文档中定义了一个超文本链后,浏览器将通过TCP/IP协议与指定的服务器建立连接。

    image

    上图是Http的工作流程图,Https会在Tcp首部这一层前加上安全层(SSL/TSL)加解密Http报文
    注:TLS是SSL的升级替代版,具体发展历史可以参考传输层安全性协议。

    Https解决的问题

    Https协议因为采用密文传输,要比Http协议安全。

    1、信任主机的问题。

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

    2、通讯过程中的数据的泄密和被窜改。

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

    • 主要目的是保证server 就是他声称的server,这个跟第一点一样。
    • b) 服务端和客户端之间的所有通讯,都是加密的。
      • i. 具体讲,是客户端产生一个对称的密钥,通过server 的证书来交换密钥。一般意义上的握手过程。
      • ii. 加下来所有的信息往来就都是加密的,第三方即使截获,也没有任何意义,因为他没有密钥,当然窜改也就没有什么意义了。

    (2)少许对客户端有要求的情况下,会要求客户端也必须有一个证书。

    • 这里客户端证书,其实就类似表示个人信息的时候,除了用户名/密码,还有一个CA 认证过的身份,应为个人证书一般来说上别人无法模拟的,所有这样能够更深的确认自己的身份。
    • 目前少数个人银行的专业版是这种做法,具体证书可能是拿U盘作为一个备份的载体。

    HTTPS 在 HTTP 与 TCP 层之间加入了 SSL/TLS 协议,可以很好的解决了上述的风险:

    • 信息加密:交互信息无法被窃取,但你的号会因为「自身忘记」账号而没。
    • 校验机制:无法篡改通信内容,篡改了就不能正常显示,但百度「竞价排名」依然可以搜索垃圾广告。
    • 身份证书:证明淘宝是真的淘宝网,但你的钱还是会因为「剁手」而没。

    相关文章

      网友评论

          本文标题:HTTP 和 HTTPS的区别

          本文链接:https://www.haomeiwen.com/subject/iyssnktx.html