http和https的区别?

157 阅读2分钟

「这是我参与11月更文挑战的第2天,活动详情查看:2021最后一次更文挑战

Hope is a good thing, maybe the best of things. And no good thing ever dies.

前言

在工作中,我们可能会很少关注这个问题,作为一个前端工程师,接口通常都是后端提供好,我们大部分时间都是直接调用即可,基本接口都是HTTPS的,既然经常用,我们就应该知道 HTTPHTTPS的区别,这也是面试中经常遇到问题。

基本概念

HTTP

HTTP协议(HyperText Transfer Protocol,超文本传输协议):是客户端浏览器或者其他程序与web服务器之间的应用层通信协议

HTTPS

HTTPS协议(HyperText Transfer Protocol over Secure Socket Layer):可以理解为HTTP+SSL/TLS,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要 SSL,用于安全的 HTTP 数据传输。

具体可以参考我之前的文章: # https 小结

HTTP 的缺点

  • 通信使用明文,内容可能被窃听(重要密码泄露)
  • 不验证通信方身份,有可能遭遇伪装(跨站点请求伪造)
  • 无法证明报文的完整性,有可能已遭篡改(运营商劫持)

HTTPS 和 HTTP 的区别

  1. HTTPS 协议需要到 ca 申请证书,基本上都是需要收费的。
  2. HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的 ssl 加密传输协议。
  3. HTTPHTTPS 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是443
  4. HTTP 的连接很简单,是无状态的;HTTPS 协议是由 SSL + HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 http 协议安全。

image.png(本图来源网络,如有侵权请联系删除)

HTTPS的工作过程

  • 客户使用 HTTPSURL 访问 Web 服务器,要求与 Web服务器建立SSL连接。
  • Web 服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
  • 客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
  • 客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
  • Web 服务器利用自己的私钥解密出会话密钥。
  • Web 服务器利用会话密钥加密与客户端之间的通信。

image.png (本图来源网络,如有侵权请联系删除)

结语

如果这篇文章帮到了你,欢迎点赞👍和关注⭐️。

文章如有错误之处,希望在评论区指正🙏🙏

欢迎关注我的微信公众号,一起交流技术,微信搜索 🔍 :「 五十年以后