您是否想知道网站如何与网络浏览器通信并向服务器请求数据以呈现在视图中?我也曾经问过这些问题。
如果您像我一样对互联网的运作方式感到好奇,那么您来对地方了。在本文中,我们将讨论 HTTPS 的工作原理以及它对于万维网的重要性。
什么是 HTTP?
了解 HTTPS 的第一步是了解它的祖先:HTTP。超文本传输协议 (HTTP) 是整个 Internet 上的网站和浏览器之间通信的通用协议。整个万维网的所有信息和连接都是在 HTTP 的帮助下形成的,毫不夸张地说,HTTP 是我们今天使用的互联网创建的主要因素。
HTTP 请求和响应
HTTP 是一种请求-响应协议,其中从客户端发送 HTTP 请求,服务器处理这些请求并响应客户端的 HTTP 响应。通常,传输控制协议(或 TCP)用于形成 HTTP 客户端和服务器之间的连接。
HTTP请求
HTTP 请求从浏览器发送,向服务器询问需要呈现到用户设备视图中的特定信息。每个 HTTP 请求都包含以下重要信息:
- HTTP 版本。
- 客户端主机名或 URL。
- HTTP 方法。
- HTTP请求头:包括客户端希望服务器响应哪种类型的数据、当前用户使用什么类型的浏览器等信息。
- HTTP body:如果客户端想要提交数据,否则这是可选的。
HTTP响应
当服务器处理完客户端的请求后,它会回复一个 HTTP 响应,其中包含以下信息:
- HTTP 状态代码。
- HTTP 响应标头。
- HTTP 响应正文。
HTTP 是如何工作的?
客户端和服务器之间的常见 HTTP 通信将通过以下步骤进行:
- 用户在浏览器中输入域名,例如junedang.com。
- 浏览器充当客户端,并向托管指定地址的服务器发送“GET”请求。
- 服务器接收请求并分析来自客户端的所需响应。这可能包括各种类型的数据,例如媒体、JSON、HTML、CSS 等。
- 服务器将响应发送回客户端。
- 客户端(浏览器)接收来自服务器的响应,并根据请求的信息继续呈现或执行内容。这些步骤演示了 GET HTTP 请求的常见示例。实际上,HTTP 支持多种客户端发送请求的方法。每个都支持特定类型的目的。一些最常见的 HTTP 方法包括:
-
GET
:从服务器检索数据或网页。 -
POST
:提交数据进行处理。通常用于表单提交。 -
PUT
:向服务器发送数据以创建或更新资源。 -
PATCH
:发送部分数据以更新现有资源。 -
DELETE
:请求服务器删除指定资源。
HTTP 的缺点 – 为什么我们需要保护 HTTP 请求的安全
尽管对互联网非常重要,但原始的HTTP仍然存在安全问题,因为缺乏数据隐私、完整性和身份识别等能力。
数据隐私
HTTP 通信未加密,因此通过 HTTP 通过 Internet 传输的数据不安全,很容易被不良因素窃听。这对用户来说极其危险,尤其是对于登录凭据、个人数据或银行详细信息等敏感信息。
正直
使用 HTTP 在客户端和服务器之间发送的数据未加密,因此可以在不被检测到的情况下被篡改或修改。缺乏完整性意味着数据可能在传输过程中被更改,这可能导致信息的误解。对于 HTTP,没有内置的保护措施来验证数据在传输过程中是否保持完整且未更改。
鉴别
HTTP 纯粹是关于数据传输和通信,但无法验证通信者之间的身份。这可能会遭受潜在的冒充攻击,例如中间人攻击。
什么是 HTTPS?
为了消除 HTTP 的缺点,引入了 HTTPS 协议,它代表安全超文本传输协议。它扩展了老男孩 HTTP 的所有特征,并使用传输层安全性 (TLS)进行数据加密,添加了有效的安全层。
在 HTTPS 之前,传输的数据看起来像这样:
GET /HTTP/1.1
Host: www.junedang.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: text/html,application/xhtml+xml
这些信息都是通过攻击者的眼睛显示出来的。现在,借助 HTTPS 加密,数据已加密,如下所示:
bG9sZWNoYXV0aDpteXNlY3JldHBhc3N3b3JkCg==
通过这种方法,可以保护数据在传输过程中不被窃听或捕获——如果攻击者劫持了数据,他们收到的只是加密的二进制文件。此外,HTTPS 在传输的消息中附加了域的数字签名,这可以确保您期望的接收者的身份。
HTTPS 是如何工作的?
如上所述,HTTPS 的工作方式与 HTTP 完全相同,但带有一个名为 SSL 的附加安全层。SSL 基于一种称为公钥加密的技术:服务器存储私钥,而公钥通过 SSL 证书与客户端共享。HTTPS 的工作流程可以用下图来说明:
- 客户端(Web 浏览器或移动设备)使用 https:// 而不是 http:// 与服务器建立 HTTPS 连接。
- 连接建立,客户端和服务器之间形成TCP连接。
- 客户端和服务器通过三向握手来交换 SSL 信息。如果客户端和服务器都支持 SSL 版本,则服务器会向客户端发送 SSL 证书,其中包含以下信息:公钥、主机名、到期日期等。
- 客户端验证证书是否由受信任的证书颁发机构 (CA) 颁发并且尚未过期或被吊销。
- 成功验证证书后,客户端使用公钥生成加密的会话密钥。
- 服务器接收加密的会话密钥,然后使用私钥对其进行解密。
- 现在客户端和服务器共享相同的加密会话密钥。然后可以建立安全连接。
- 加密消息在双向安全通道中传输。通过这个过程,HTTPS 确保了 HTTP 协议所缺少的三个安全支柱:数据隐私、完整性和身份识别。
结论
HTTP 是构成互联网的最重要技术之一,它通过在客户端和服务器之间建立连接来进行数据传输。但 HTTP 缺乏安全因素,可能会给最终用户带来与数据隐私、完整性和身份识别相关的严重问题。
为了克服这些问题,创建了 HTTPS 协议来确保客户端和服务器之间的通信安全可靠。
为了充分利用本文,请随意完成以下挑战👇:
🐣简单模式:
- 检查您当前组织的网站,看看他们是否使用 SSL 证书。
- SSL 证书中存储的信息是什么?
🔥困难模式:
- 您能否详细列出如何创建受信任的 SSL 证书?
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
左偏树 左偏树是一种可以让我们在 (O(log n )) 的时间复杂度内进行合并的堆式数据结构。 为了方便以下的左偏树为小根堆来讨论。 定义 外结点:左儿子或者右儿子是空节点的结点。 距离:一个结点 (x) 的距离 (dis[x]) 定义为其子树中与结点 (x…