HTTP与HTTPS - 有什么区别?

231 阅读10分钟

我们在日常生活中经常与HTTP和HTTPS互动,但很多人不知道其中的区别。

大多数计算机用户只是看到浏览器在告诉他们他们的应用程序不安全,黑客可能想窃取他们的重要信息。这导致用户跑得比Usain Bolt目前的记录还快。

但这是可以避免的。这就是HTTPS的作用,它取代了HTTP。我们今天就来讨论这个问题。)

以下是我们要讨论的内容

  1. 什么是HTTP?
  2. HTTP是如何工作的
  3. HTTP的特点
  4. 如何知道一个网站是否不安全
  5. 所有的HTTP网站都是不安全的吗?
  6. 什么是HTTPS?
  7. HTTPS如何工作
  8. HTTPS的特点
  9. 加密是如何工作的
  10. 如何知道一个网站是否安全
  11. 什么是SSL证书?
  12. SSL是如何工作的?
  13. 如何为我的网站获得SSL?
  14. 在哪里可以获得SSL证书?
  15. 我可以免费获得SSL证书吗?
  16. HTTPS和HTTP的主要区别
  17. 结论

超文本传输协议,即HTTP,是你的浏览器和你要访问的网站(网络服务器)之间的一种通信方法。

这允许你在浏览器上从服务器上获得你需要的信息。

理解HTTP和HTTPS的一个好方法是用一个比喻。我们知道,浏览器和服务器使用HTTP进行通信。HTTP通常是纯文本的。世界上很多人都说英语。如果一个懂英语的黑客黑进了你的电脑,他们可以轻易地看到你输入的任何密码。

在肯尼亚,在我的母语中,我们讲图尔卡纳语。如果你不说这种语言,你来到肯尼亚,发现两个图堪人在说话,你可能不明白他们在说什么。

这就是HTTPS的魅力所在。它是加密的,这样黑客就有希望不了解浏览器和服务器之间的通信。

Client to server

如果我去www.google.com,我希望看到谷歌的默认页面。

Googles default page

客户端,在大多数情况下是网络浏览器,发送一个信息,用计算机术语来说是一个请求。然后,服务器会回馈一个答案,这就是响应。

HTTP在发送HTML文件以及图像和视频到网络浏览器供用户查看方面非常有用。它也被用来在HTML表格中向服务器发送数据。

Where HTTP Protocol sits

HTTP是如何工作的

HTTP通过纯文本发送数据。例如,如果你要访问你的银行的网页,而他们使用的是HTTP,黑客可能会访问它并读取你发送的任何信息。

这就是HTTPS的作用。许多公司已经实施了HTTPS,能够让他们的用户安全地发送数据。下面我们将进一步讨论这个问题。

HTTP的特点

  • 纯文本:最初开发HTTP的时候,开发者只有一个想法:只提供文本文件。现在,HTTP的使用方式已经超过了它最初的设想。

  • 第七层协议:HTTP是OSI网络模型中的第7层协议。第7层是应用层。该层是OSI模型中最顶层的一层。其他层包括物理层、数据链路层、网络层、传输层、会话层和表现层。要了解更多关于OSI模型的信息,你可以查看FreeCodeCamp的YouTube频道上由Brian Ferrill制作的关于互联网如何工作的免费视频。除了OSI模型,罐子里还有更多的饼干。计算机网络课程--网络工程 [CompTIA Network+ Exam Prep]

  • 不安全的:当你发送HTTP请求时,它们是通过纯文本发送的。另外,当你得到一个响应时,你也是通过纯文本得到的。这意味着,任何能够访问请求和响应的人都可以阅读它们。
    Insecure connection

  • 重量轻:HTTP的优势在于它非常轻巧。因此,它是非常快的,因为它不做加密的东西,以确保数据,像HTTPS的。

  • HTTP通常在80端口监听。

如何知道一个网站是否不安全

当一个网站不安全时,Chrome通常会发送一个警告,说Your connection is not private
HTTP Not secure

在Chrome上,如果一个网站不安全,URL栏通常会以红色显示Not Secure
Not secure URL image

所有的HTTP网站都是不安全的吗?

好吧,让我们看一个例子。想象一下,你正在浏览一个备忘录网站,当你滚动时,每一个人都在笑。如果它使用的是HTTP,那么你就不用担心了。这并不是什么大问题。

你觉得无聊,决定去你的银行网站,用浏览器访问你的账户。如果该网站没有使用HTTPS,你可能会把你的账户信息提供给黑客。

因此,底线是,如果你浏览的是无关紧要的信息,HTTP是可以的。但如果你处理的是不安全的信息,HTTP就不够了。

什么是HTTPS?

超文本传输协议安全,或HTTPS,是一种可以在你的浏览器和你想访问的网站(网络服务器)之间安全地进行通信的方式。

HTTPS如何工作

HTTPS通过使用安全协议对你的数据进行加密来实现安全连接。

对于大多数网站来说,实现HTTPS的最佳方式是获得SSL(安全套接字层)证书或TLS(传输层安全)证书。

目前,SSL已经变得足够先进,它支持TLS。因此,你不需要获得一个TLS证书。

HTTPS的特点

  • 对数据进行加密。数据加密是通过TLS/SSL协议进行的。
  • 它是一个第四层(传输层)协议。
  • 公钥和私钥的交换发生在HTTPS中,以加密和解密数据。
  • 与HTTP相比,它更重。当加密和解密发生在HTTPS,它变得更重。
  • HTTP的监听端口是443。

加密是如何工作的

How encryption works

比方说,我输入 "我是一名开发人员"。当我点击发送时,这个文本会被加密,然后在服务器端被解密。

从服务器端来看也是如此。如果我从服务器上得到一个响应,它将首先被加密,然后在客户端被解密。

如何知道一个网站是否安全

要知道一个网站是安全的,你通常看一下URL栏,在那里你可以看到一个锁。如果有一个锁,从客户端到服务器的连接是安全的。

Showing that the site is secure

当你点击锁的图标时,它会告诉你有关安全连接的更多信息。

Shows site is secure

什么是SSL证书?

SSL证书是一个小文件,它告诉浏览器你的网站--例如freecodecamp.org--是它所说的人,并且是可靠的。

为了验证,该证书能够向客户(用户)确认他们所连接的服务器是管理该域名的服务器。所有这些都是为了使用户免受安全问题的影响,如域名欺骗。

它包含一个公钥,并告诉你,你试图连接的网站的主人是谁。如果一个网站没有SSL证书,它就不能用TLS加密。

如果你是网站所有者,你可以亲自创建自己的SSL证书(也被称为自签名证书)。这种方法的问题是,像Chrome这样的浏览器并不信任这些证书。他们更愿意相信由证书颁发机构颁发的证书。

SSL加密是如何工作的?

有两种类型的SSL加密,即非对称和对称加密。非对称和对称的结合是SSL加密的工作原理。让我们看看下面的内容,以了解更多信息。

什么是非对称加密?

在非对称加密中,你有两个密钥。它们是:

  1. 公钥。
  2. 私钥。

Asymmetric encryption

客户端/用户/浏览器将公共密钥交给与之通信的服务器。然后,在公钥的帮助下进行解密,在服务器的私钥的帮助下进行解密。

私钥只能在那个特定的服务器上找到。没有其他人拥有它。这向你展示了为什么非对称加密更强大,更难被入侵,因为它有两个不同的密钥,即私人和公共密钥。这两个密钥一起工作,确保数据更安全。

这也告诉你为什么这种加密的大小是1024/2048位。

什么是对称加密?

在对称加密中,它非常简单。你有一个密钥,仅此而已。客户端使用一个密钥进行加密,而服务器则使用相同的密钥来解密数据。

对称加密的重量非常轻。其大小为128/256位。但与非对称加密相比,它更容易被黑客入侵。这并不意味着它没有用。当我们使用SSL时,我们将非对称和对称结合起来,使通信更安全、更有保障。

Symmetric encryption

非对称+对称加密如何工作

非对称和对称两者的结合就是现在的双面墙。
Asymmetric and Symmetric

在第一步,服务器将向经纪商发送非对称公钥。正如我们现在所知道的,非对称密钥既有公钥也有私钥。因此,浏览器将收到公钥。

在这之后,浏览器会生成一个会话密钥。

对称加密对客户端和服务器都只使用一个单一的密钥。因此,将发生的情况是,浏览器将生成一个本地会话密钥。这是一个对称加密会话密钥。然后,它将使用第一步中给出的非对称公共密钥对其进行加密。然后,本地生成的会话密钥将与公共密钥相结合,并被发送到服务器上。

然后,服务器将使用私人密钥来解密它所收到的加密会话密钥。在这个特定步骤中,服务器将使用非对称私钥来解密它所收到的会话密钥。

现在,一旦解密完成,服务器和浏览器将使用会话密钥进行通信。会话密钥将只用于该特定会话。

假设你关闭了你的浏览器,也许第二天再登录--一切都将重新开始。会话密钥会再次被创建。

HTTPS的用途是什么?

HTTPS对安全有很大帮助。没有它,传递敏感信息就会成为一个很大的挑战,特别是如果你的业务需要一个安全的通信方式。

接受在线支付的网站,如电子商务网站通常需要HTTPS。这是为了避免信用卡信息和登录信息等信息被盗(来源:Tony Messer)。

HTTPS和HTTP之间的主要区别

  • HTTPS中启用了加密层,而HTTP中没有加密层。
  • 你的数据在HTTPS中得到保护,而在HTTP中则没有。
  • 当你使用HTTPS时,你的排名会在谷歌中得到提升,而使用HTTP时,你不会得到任何排名提升。
  • 当你使用HTTPS时,你会受到保护,防止网络钓鱼,而使用HTTP时则没有保护。
  • 当你使用HTTPS时,你符合支付行业的规定,而HTTP是不符合规定的。
  • 在最初的几秒钟内,加载HTTPS可能比加载HTTP慢。
  • 获得SSL证书可能要花钱,而使用HTTP则没有认证费用。
  • 在使用HTTPS时,你会和谷歌浏览器成为朋友。谷歌浏览器不喜欢HTTP,因此你将总是收到不安全的网站通知。

总结

作为开发者,HTTP和HTTPS在我们的日常生活中非常重要。浏览器和服务器之间的通信是我们工作的主要动力。

通过尽可能地保护用户的数据,使他们的信息不被窃取,你将获得他们的信任并提供更好的用户体验。