当前位置: 首页 > news >正文

【网络】深入理解 HTTPS:确保数据传输安全的核心协议

目录

  • 引言
  • 一、HTTPS的基本概念
    • 1.1 什么是 HTTPS?
    • 1.2 HTTPS 的工作原理
    • 1.3 图解:HTTPS 通信过程
    • 1.4 HTTPS 与 HTTP 的区别
    • 1.5 为什么 HTTPS 更加重要?
  • 二、SSL/TLS协议的核心
    • 2.1 SSL/TLS 协议的作用
    • 2.2 SSL/TLS 的工作流程
      • 2.2.1 握手阶段
      • 2.2.2 数据传输阶段
      • 2.2.2 图解:SSL/TLS 握手过程
    • 2.3 SSL/TLS握手过程的详细步骤
      • 2.3.1 图解:TLS握手过程详细示意图
    • 2.4 SSL/TLS协议的安全性
  • 三、HTTPS 的安全性优势
    • 3.1 防止中间人攻击(MITM)
    • 3.2 数据加密和隐私保护
    • 3.3 防止伪造网站
  • 四、SSL/TLS 证书的管理与选择
    • 4.1 SSL/TLS 证书的类型
    • 4.2 选择证书时的考虑因素
  • 总结

引言

在当今互联网安全日益重要的背景下,HTTPS(HyperText Transfer Protocol Secure)作为一种关键协议,结合了 HTTP 和 SSL/TLS 技术,为数据传输提供了加密保护。与传统的 HTTP 协议不同,HTTPS 通过加密机制确保了通信的保密性、完整性和身份验证,极大地增强了用户与服务器之间的安全信任。

无论是在进行在线购物、网上银行交易,还是在社交平台上处理个人信息,HTTPS 协议都为数据传输提供了坚实的安全保障。本文将深入探讨 HTTPS 的工作原理、SL/TLS 的核心技术、HTTPS 的安全性优势及 SSL/TLS 证书的管理与选择。帮助开发者和系统管理员全面了解如何有效保护网站及其用户的数据安全,避免潜在的安全风险。

一、HTTPS的基本概念

1.1 什么是 HTTPS?

HTTPS(HyperText Transfer Protocol Secure)是 HTTP 协议的安全版本。HTTP 是用于客户端与服务器之间传输网页数据的协议,而 HTTPS 在 HTTP 协议的基础上添加了一层 SSL/TLS 加密协议,使得传输的数据在网络中不易被窃取或篡改。HTTPS 通常用于传输敏感信息,如登录凭证、支付信息、个人数据等。

与 HTTP 协议不同,HTTPS 在数据传输过程中会对信息进行加密,确保数据在传输过程中不被第三方监听或修改。这就是 HTTPS 被广泛应用于现代互联网服务,特别是涉及金融和隐私的应用场景中的原因。

1.2 HTTPS 的工作原理

HTTPS 的工作流程主要依赖于 SSL/TLS 协议的加密和认证过程。客户端与服务器之间的通信通过以下步骤进行:

  1. 客户端发起连接: 客户端(浏览器或其他用户代理)向服务器发起一个 HTTPS 请求,通常以 https:// 开头。
  2. 服务器响应证书: 服务器返回其 SSL/TLS 证书,证书中包含了服务器的公钥、服务器的身份信息以及由认证机构(CA)签发的数字签名。
  3. 客户端验证证书: 客户端通过验证证书的合法性(例如是否由可信的 CA 签发)来确保服务器的身份。此时,浏览器会验证以下内容:
    • 证书是否有效(是否过期)。
    • 证书的域名是否与请求的域名一致。
    • 证书是否由一个受信任的 CA 签发。
  4. 密钥交换: 一旦证书验证通过,客户端和服务器使用公钥和私钥进行加密交换,以生成会话密钥。会话密钥是一个对称加密密钥,后续的所有数据传输都会使用该密钥进行加密。
  5. 加密数据传输: 客户端和服务器使用对称加密的会话密钥进行安全的数据传输。数据传输过程中,所有的内容都会经过加密,防止第三方窃听。

在 HTTPS 中,所有数据都经过加密,因此即使中间有人窃听网络数据,也无法读取其中的信息。

1.3 图解:HTTPS 通信过程

为了更清晰地展示HTTPS通信过程的详细步骤,以下图示化的序列图展示了所有关键步骤和交互流程。

浏览器 服务器 证书颁发机构 (CA) 发起HTTPS请求 CSDN @ 2136 接受并处理请求 返回SSL/TLS证书 (包含公钥和签名) 验证证书的合法性和签名 返回验证结果(证书有效) 检查证书是否过期 检查证书域名是否匹配 CSDN @ 2136 检查证书颁发机构是否可信 证书合法,继续进行数据传输 拒绝连接,警告提示 alt [验证通过] [验证失败] alt [证书验证阶段] 生成对称密钥(随机数) 用服务器公钥加密对称密钥并发送 CSDN @ 2136 用私钥解密得到对称密钥 使用对称密钥加密数据传输 用对称密钥解密得到数据 CSDN @ 2136 使用对称密钥加密数据传输 使用对称密钥解密响应数据 alt [数据传输阶段] 浏览器 服务器 证书颁发机构 (CA)

图示解释

  1. 证书验证阶段:

    • 浏览器发起 HTTPS 请求: 浏览器向服务器发出 HTTPS 请求。
    • 服务器返回证书: 服务器返回包含公钥和签名的 SSL/TLS 证书。
    • 浏览器向 CA 验证证书: 浏览器通过 CA 验证证书的签名是否合法。
    • 浏览器检查证书有效性: 浏览器检查证书是否过期、域名是否匹配、证书颁发机构是否可信。
    • 验证结果: 如果验证通过,浏览器继续数据传输;如果验证失败,浏览器拒绝连接并提示警告。
  2. 数据传输阶段:

    • 浏览器生成对称密钥: 浏览器生成一个对称密钥(随机数),用于加密和解密数据。
    • 浏览器加密对称密钥: 浏览器用服务器的公钥加密对称密钥并发送给服务器。
    • 服务器解密对称密钥: 服务器用私钥解密收到的对称密钥。
    • 加密数据传输: 浏览器和服务器使用对称密钥对数据进行加密和解密,确保数据的机密性。

1.4 HTTPS 与 HTTP 的区别

特性HTTPHTTPS
安全性无加密,数据明文传输使用 SSL/TLS 加密,数据安全传输
默认端口80443
证书无需证书需要 SSL/TLS 证书
性能较快(无加密处理)较慢(加密解密处理)
使用场景非敏感数据传输需要保护的数据传输(如支付、登录)

详细解释

  • 安全性: HTTP 在传输数据时不进行加密,数据以明文形式传输,容易受到中间人攻击(MITM)。而 HTTPS 则使用 SSL/TLS 协议对数据进行加密,确保数据传输的安全性。
  • 默认端口: HTTP 使用 80 端口,而 HTTPS 默认使用 443 端口。这是由协议标准决定的,服务器会根据不同的端口来区分是处理加密的 HTTPS 请求还是普通的 HTTP 请求。
  • 证书: HTTPS 需要 SSL/TLS 证书来确保服务器身份的验证,防止伪装的攻击者冒充服务器。HTTP 不需要证书,安全性较低。
  • 性能: HTTPS 在进行数据加密和解密时会增加一定的计算负担,导致相对于 HTTP,HTTPS 在性能上稍微逊色。然而随着计算能力的提升和加密算法的优化,这一差距逐渐变得不那么明显。
  • 使用场景: HTTPS 适用于任何需要保护数据隐私和安全的场景,例如银行网站、电子商务平台、在线支付和社交媒体网站。而 HTTP 则适合一些对数据安全要求不高的简单网页应用。

1.5 为什么 HTTPS 更加重要?

随着网络安全问题的日益严重,使用 HTTPS 成为保护用户隐私、数据安全和身份认证的必要手段。特别是在以下几种场景中,HTTPS 显得尤为重要:

  • 身份认证: HTTPS 确保用户连接的服务器是真实的,防止 DNS 劫持、钓鱼网站等欺诈行为。
  • 数据保护: 使用 HTTPS 加密协议,确保用户在浏览器与服务器之间传输的数据不会被监听或篡改,防止信息泄露。
  • SEO 排名: 搜索引擎(例如 Google)对使用 HTTPS 的网站给予较高的搜索排名,这不仅有助于提高网站的安全性,还能提升网站在搜索引擎中的可见度。
  • 法律合规: 在很多国家,尤其是欧洲的 GDPR 法规中,要求网站在处理用户敏感数据时使用 HTTPS,以保护用户隐私并防止数据泄露。

二、SSL/TLS协议的核心

SSL(Secure Sockets Layer)和TLS(Transport Layer Security)是现代互联网中用来保护数据传输安全的加密协议。尽管SSL协议在历史上占据了主导地位,但由于SSL协议存在一些已知的安全漏洞,TLS协议已经逐渐取代了SSL,并成为当前广泛使用的标准。然而,由于SSL的历史影响,人们仍然习惯性地将SSL和TLS统称为“SSL/TLS”。在这篇文章中,将详细介绍SSL/TLS协议的工作原理、核心功能以及常见的攻击防护机制。

2.1 SSL/TLS 协议的作用

SSL/TLS协议的主要功能是通过加密技术确保数据在网络传输过程中不被窃取或篡改,并验证通信双方的身份。SSL/TLS的核心作用可以归纳为以下几个方面:

  1. 加密:
    加密是SSL/TLS协议最重要的功能之一,它可以防止敏感信息在传输过程中被第三方监听。SSL/TLS使用对称加密和非对称加密结合的方式来加密数据。对称加密用于加密实际的消息内容,而非对称加密则用于安全地交换加密密钥。
  • 对称加密:数据传输双方使用相同的密钥进行加密和解密,速度较快,但密钥的传输过程必须通过安全的方式进行。
  • 非对称加密:使用一对密钥——公钥和私钥。公钥可以公开,私钥只有所有者持有。通过公钥加密的数据只能用对应的私钥解密。
  1. 数据完整性:
    SSL/TLS协议通过使用消息摘要(如SHA-256)和哈希算法,确保数据在传输过程中不会被篡改。通过对数据和消息头进行加密哈希处理,接收方可以验证接收到的数据是否被中途篡改。
  • 数字签名:通过对消息内容进行哈希处理并使用发送方的私钥签名,接收方可以验证消息是否被篡改。
  1. 身份验证:
    SSL/TLS协议允许双方通过证书验证对方的身份,从而防止“中间人攻击”(MITM)。服务器通常会向客户端提供由可信证书机构(CA)签发的数字证书,客户端通过验证证书的有效性,确认服务器的身份是否合法。
  • 服务器认证:通过证书的公钥链来验证服务器的身份。
  • 客户端认证(可选):某些情况下,客户端也可以使用证书来进行身份验证。

2.2 SSL/TLS 的工作流程

SSL/TLS协议的工作流程主要分为两个阶段:握手阶段数据传输阶段。握手阶段用于协商连接参数、交换密钥和身份验证;数据传输阶段则使用加密的对称密钥进行安全的数据传输。

2.2.1 握手阶段

SSL/TLS握手阶段的过程较为复杂,但可以分为以下几个关键步骤:

  1. 客户端发起连接: 客户端向服务器发送连接请求,通常是通过HTTPS协议发起的,要求建立安全的SSL/TLS连接。

  2. 服务器响应证书: 服务器收到请求后,返回其公钥证书,证书中包含了服务器的公钥、证书的有效期、签发证书的证书机构(CA)等信息。证书是由CA签发的,目的是让客户端能够验证服务器的身份。

  3. 客户端验证证书: 客户端收到服务器的证书后,会验证该证书是否有效。这包括验证证书链是否可信、证书是否过期、证书是否被吊销等。

  4. 密钥交换: 客户端使用服务器证书中的公钥加密一个随机生成的对称密钥(称为“会话密钥”),并将其发送给服务器。服务器使用私钥解密该密钥。

  5. 加密通信: 双方成功交换会话密钥后,开始使用该共享的会话密钥进行对称加密通信。

2.2.2 数据传输阶段

在数据传输阶段,客户端和服务器已经建立了安全的加密通道,所有数据都通过对称加密进行保护,确保数据不会被窃听或篡改。双方通过已经协商好的会话密钥对消息进行加密、解密,并在消息中附加哈希值以确保数据的完整性。

2.2.2 图解:SSL/TLS 握手过程

为了更清晰地展示SSL/TLS握手过程的详细步骤,以下图示化的序列图展示了所有关键步骤和交互流程。

客户端 服务器 CSDN @ 2136 发送 HTTPS 请求 返回服务器证书(含公钥) 验证证书(包括证书链) 发送加密的随机数,建立共享密钥 CSDN @ 2136 用私钥解密并完成加密通信 双方开始加密通信 安全的数据传输 证书和密钥交换确保安全通信 客户端 服务器

图示解释

  1. 客户端发送HTTPS请求
    客户端发起HTTPS请求,通常是访问网站时,客户端首先与服务器建立连接,且请求中会包含一些信息,如请求的URL、HTTP头等。

  2. 服务器返回服务器证书(含公钥)
    服务器收到客户端请求后,会返回一个证书。这个证书通常包含了服务器的公钥、证书链(用于验证证书是否可信)以及服务器的身份信息。公钥是后续加密通信的关键。

  3. 客户端验证证书(包括证书链)
    客户端在接收到服务器证书后,需要验证其有效性,检查证书是否由可信的证书颁发机构签发,并验证证书链是否完整。如果证书有效,客户端会继续后续的密钥交换过程。

  4. 客户端发送加密的随机数,建立共享密钥
    客户端生成一个随机数,并使用服务器公钥对其加密后发送给服务器。这个随机数将用于双方后续生成共享会话密钥(即用于加密通信的密钥)。这种加密确保了通信的机密性,即使中间人拦截了这些数据,也无法解密。

  5. 服务器用私钥解密并完成加密通信
    服务器收到客户端发送的加密的随机数后,使用自己的私钥进行解密。解密后,双方基于解密出的随机数和其他参数生成对称的会话密钥。该会话密钥将在后续的通信中用于加密和解密数据。

  6. 双方开始加密通信
    一旦双方都生成了共享的会话密钥,便可以开始加密通信。所有的数据都将使用对称加密算法加密,以确保数据传输的安全性。

  7. 安全的数据传输
    随着加密通信的开始,客户端和服务器之间的所有传输数据都将被加密,确保通信内容的机密性和完整性。即使数据在传输过程中被截获,也无法被第三方读取或篡改。

2.3 SSL/TLS握手过程的详细步骤

本节将对握手过程的每个步骤进行详细分析,以帮助读者更好地理解协议的运作机制。

步骤编号操作环节客户端操作服务器操作说明
1客户端请求客户端发送ClientHello消息,包含支持的加密算法、SSL/TLS版本等信息客户端请求建立安全连接,告知支持的加密方法和协议版本。
2服务器证书响应服务器发送ServerHello消息,并返回证书(公钥证书)服务器返回其公钥证书以证明其身份。
3证书验证客户端验证服务器证书是否有效,包括证书链和签名验证客户端验证证书是否可信。
4会话密钥生成客户端生成一个随机数,使用服务器的公钥加密后发送给服务器服务器使用私钥解密消息,得到会话密钥客户端通过服务器公钥加密会话密钥,并发送给服务器。
5安全通信开始客户端和服务器基于共享的会话密钥开始加密通信服务器也开始使用会话密钥加密和解密消息会话密钥用于加密通信数据,确保数据的机密性。

2.3.1 图解:TLS握手过程详细示意图

为了更清晰地展示TLS握手过程的详细步骤,以下图示化的序列图展示了所有关键步骤和交互流程。

客户端 服务器 CSDN @ 2136 发送ClientHello:协议版本、加密算法 发送ServerHello:证书、加密算法选择 验证证书,发送预主密钥加密消息 CSDN @ 2136 解密预主密钥并生成共享密钥 发送加密确认信息 发送加密确认信息 双方开始加密通信 会话密钥保证数据传输的安全性 客户端 服务器

图示解释

  1. 客户端发送ClientHello
    客户端向服务器发送一个 ClientHello 消息,其中包括协议版本、支持的加密算法、随机数等信息。

  2. 服务器回应ServerHello
    服务器选择合适的加密算法和协议版本后,返回 ServerHello 消息,并包含服务器的证书。

  3. 服务器发送证书
    服务器将其数字证书(包括公钥)发送给客户端,客户端用来验证服务器的身份。

  4. 客户端验证证书并生成预主密钥
    客户端验证服务器的证书,如果证书有效,它会使用服务器的公钥加密一个生成的预主密钥,并将加密后的密钥发送给服务器。

  5. 服务器解密并生成共享密钥
    服务器使用私钥解密客户端发送的预主密钥,并根据该密钥生成双方会话的共享密钥。

  6. 客户端发送加密的Finished消息
    客户端发送经过加密的 Finished 消息,表示它已经成功设置会话密钥并准备开始加密通信。

  7. 服务器发送加密的Finished消息
    服务器也发送加密的 Finished 消息,确认双方都已完成握手过程。

  8. 双方开始加密通信
    握手完成后,双方使用共享的会话密钥开始加密和解密后续的数据。

2.4 SSL/TLS协议的安全性

尽管SSL/TLS协议提供了很高的安全性,但随着技术发展,仍然存在一些潜在的安全风险。了解这些漏洞和防护措施有助于增强SSL/TLS的安全性。

  1. 弱加密算法的风险: SSL/TLS协议的早期版本支持一些较弱的加密算法,如RC4等,这些算法容易受到攻击。当前推荐使用AES(Advanced Encryption Standard)等强加密算法。

  2. 协议版本的漏洞: SSL 2.0和SSL 3.0协议版本已知存在多种安全漏洞,如POODLE攻击。TLS 1.2和TLS 1.3被认为是目前最安全的版本。

  3. 中间人攻击(MITM)
    如果SSL/TLS证书未经过有效验证,攻击者可能会伪装成目标服务器,拦截和篡改客户端与服务器之间的通信。为了防止这种攻击,客户端必须验证服务器的证书是否有效且受信任。SSL/TLS的证书链验证机制以及使用公信机构(CA)签发的证书是防止中间人攻击的有效手段。

  4. 重放攻击(Replay Attack):
    攻击者可以截获并重发有效的通信消息,导致服务被滥用或出现未预期的行为。为防止这种攻击,SSL/TLS协议通过使用时间戳、一次性会话密钥、随机数等机制来确保每次通信都是唯一的,从而抵抗重放攻击。

  5. 弱密码和不安全的私钥存储:
    即使SSL/TLS本身很安全,如果加密过程中使用的密码(如会话密钥)或者私钥存储不当,攻击者仍然能够破坏通信的安全性。例如,私钥存储不当可能导致密钥被盗取。为了防止此类问题,必须采取合适的密码强度、密钥管理策略,并且定期更换密钥。

  6. 密钥交换和前向保密(Forward Secrecy,FS):
    前向保密是指即使攻击者获得了服务器的私钥,也无法解密已经完成的会话通信。在SSL/TLS中,支持前向保密的密钥交换算法(如ECDHE或DHE)能够保障每次通信使用不同的会话密钥,这使得历史通信的内容无法被后期的密钥泄漏所解密。

  7. TLS 1.3的改进:
    相较于TLS 1.2,TLS 1.3进一步加强了安全性,去除了部分已知不安全的功能,如不安全的加密算法(RC4、DES等)和压缩功能(防止CRIME攻击)。TLS 1.3还引入了0-RTT(零往返时间)数据传输,能够提升性能的同时保持高度的安全性。

三、HTTPS 的安全性优势

3.1 防止中间人攻击(MITM)

中间人攻击(MITM,Man-In-The-Middle)是指攻击者通过截取、修改客户端与服务器之间的通信数据来获取敏感信息。HTTPS 通过 SSL/TLS 协议的身份验证和加密,能够有效防止这类攻击。

3.2 数据加密和隐私保护

HTTPS 通过使用加密技术(如 AES、RSA 等算法)确保在客户端和服务器之间传输的数据是加密的,即使数据在传输过程中被截获,攻击者也无法轻易解读。以下是 HTTPS 提供隐私保护的关键优势:

  • 防止数据泄露:例如,当用户通过 HTTPS 提交登录凭据或支付信息时,即使数据传输被截取,攻击者也无法读取到明文信息。
  • 防止篡改:HTTPS 的数据完整性校验功能确保传输中的数据未被篡改。如果数据在传输过程中被修改,双方可以检测到并拒绝接受该数据。

3.3 防止伪造网站

HTTPS 通过数字证书验证网站的身份,确保用户访问的是合法的服务器,而不是伪造的“钓鱼”网站。通过使用由受信任的证书颁发机构(CA)签发的证书,HTTPS 能有效防止攻击者创建假冒网站,从而保护用户免受“钓鱼攻击”和其他类型的欺诈。

四、SSL/TLS 证书的管理与选择

为了使用 HTTPS,网站需要配置 SSL/TLS 证书,这些证书由受信任的证书颁发机构(CA)签发。选择合适的证书类型和有效期是确保 HTTPS 安全性的关键。

4.1 SSL/TLS 证书的类型

  1. 域名验证证书(DV SSL)

    • 验证方式: 只验证域名所有权。
    • 适用场景: 小型网站或个人博客。
    • 安全性: 基本的加密保护,适用于不涉及敏感交易的网站。
  2. 组织验证证书(OV SSL)

    • 验证方式: 除了验证域名所有权外,还需要验证组织的身份。
    • 适用场景: 企业网站,尤其是涉及较多用户的业务网站。
    • 安全性: 提供更高的身份验证,相对比 DV 证书更为安全。
  3. 扩展验证证书(EV SSL)

    • 验证方式: 对企业进行严格的背景审查,并验证组织的法律身份。
    • 适用场景: 适用于电子商务网站、银行等需要较高安全级别的场所。
    • 安全性: 提供最高级别的身份验证和加密保护,浏览器会显示企业名称和绿色地址栏标志,增强用户信任。
  4. 通配符证书(Wildcard SSL)

    • 验证方式: 可保护同一域名下的所有子域名。
    • 适用场景: 适合需要保护多个子域名的网站。
    • 安全性: 适用于多子域名的企业,但相较于普通单域名证书,其保护范围更广。

4.2 选择证书时的考虑因素

  • 证书类型: 根据网站的需求和安全要求选择合适的证书类型(DV、OV、EV)。
  • 证书颁发机构: 选择受信任的、全球知名的 CA(例如 DigiCert、Comodo、Let’s Encrypt 等)。
  • 证书的有效期: 通常 SSL/TLS 证书的有效期为 1 至 2 年,定期更新证书可以保证网站的安全。
  • 自动续期功能: 使用自动化工具(如 Let’s Encrypt 提供的免费证书)可以简化证书的更新和管理。

总结

HTTPS 是互联网通信中保障安全的基石,它通过加密和身份验证保护数据免受窥探和篡改,确保用户的隐私和安全。在当前的网络环境中,使用 HTTPS 已成为网站的标准配置,不仅可以提高用户的信任度,还能提高搜索引擎的排名。因此,所有网站都应当部署 HTTPS,并定期管理和更新 SSL/TLS 证书,确保提供安全的在线服务。


相关文章:

【网络】深入理解 HTTPS:确保数据传输安全的核心协议

目录 引言一、HTTPS的基本概念1.1 什么是 HTTPS?1.2 HTTPS 的工作原理1.3 图解:HTTPS 通信过程1.4 HTTPS 与 HTTP 的区别1.5 为什么 HTTPS 更加重要? 二、SSL/TLS协议的核心2.1 SSL/TLS 协议的作用2.2 SSL/TLS 的工作流程2.2.1 握手阶段2.2.2…...

C/C++中使用MYSQL

首先要保证下载好mysql的库和头文件,头文件在/usr/include/mysql/目录下,库在/usr/lib64/mysql/目录下: 一般情况下,在我们安装mysql的时候,这些都提前配置好了,如果没有就重装一下mysql。如果重装mysql还是…...

【GD32】(一) 开发方式简介及标准库开发入门

文章目录 0 前言1 开发方式选择2 标准库模板的创建3 遇到的问题和解决方法 0 前言 因为项目关系,需要使用GD32。之前对此早有耳闻,知道这个是一个STM32的替代品,据说甚至可以直接烧录STM32的程序(一般是同型号)&#x…...

轻松上手:使用Docker部署Java服务

文章目录 1. 什么是Docker?2. 为什么使用Docker部署Java服务?3. 如何使用Docker部署Java服务?步骤1:创建Dockerfile步骤2:构建Docker镜像步骤3:运行Docker容器 4. 注意事项5. 结语推荐阅读文章 在当今的云计…...

wormml_vgg19

创建环境 mamba install libopencv hdf5 -c conda-forge conda create -n st python3.6.2手动导入包 mamba install blas1.0mkl -c conda-forge mamba install hdf51.8.20hac2f561_1 -c conda-forge mamba install libopencv3.4.2h20b85fd_0 -c conda-forge mamba install l…...

Rust学习(二):rust基础语法Ⅰ

Rust学习(二)——rust基础语法Ⅰ: 1、关键字: 了解编程语言的同学都清楚,关键字在一门编程语言中的意义,所谓关键字就是语言的创造者及后续开发者们,以及定义好的具有特殊含义和作用的单词&am…...

【WebRTC】视频发送链路中类的简单分析(下)

目录 1.任务队列节流发送器(TaskQueuePacedSender)1.1 节流控制器添加RTP数据包(PacingController::EnqueuePacket())1.2 监测是否要处理Packet(PacingController::MaybeProcessPackets()) 2.数据包路由&am…...

HTML(超文本标记语言)

HTML(超文本标记语言 - HyperText Markup Language)是一种用于创建网页的标准标记语言。 HTML 最初是由蒂姆・伯纳斯 - 李(Tim Berners - Lee)在 1990 年左右开发的。当时的目的是为了让世界各地的科学家能够方便地共享和交流信息…...

CatBoost中目标变量统计

CatBoost中的目标变量统计(Target Statistics)是其处理分类特征(Categorical Features)的核心技术之一。目标变量统计是一种特殊的编码方法,通过利用目标值信息生成数值特征,从而替代传统的独热编码或其他处…...

WSL与Ubuntu系统--使用Linux

WSL与Ubuntu系统--使用Linux 前言基础教学视频卸载链接网络配置方法1方法2 正式安装步骤步骤1 基本命令修改网络配置Ubuntu系统的导出与导入文件操作给Ubuntu创造界面--也就是在装一个有界面的UbuntuHyper-v与windows主机文件共享 前言 需要链接梯子,并且梯子十分稳…...

操作系统离散存储练习题

1. (简答题)分页存储管理系统具有快表,内存访问时间为2ns,检索快表时间为0.5ns,快表命中率为80%,求有效访问时间 -分析:首先访问缓存(快表),如果没有找到访问内存(页表&…...

性能高于Transformer模型1.7-2倍,彩云科技发布基于DCFormer架构通用大模型云锦天章

2017年,谷歌发布《Attention Is All You Need》论文,首次提出Transformer架构,掀开了人工智能自然语言处理(NLP)领域发展的全新篇章。Transformer架构作为神经网络学习中最重要的架构,成为后来席卷全球的一…...

PHP反序列化_3-漏洞利用

1. 信息收集与分析 确定目标应用程序:首先需要找到存在反序列化漏洞的 PHP 应用程序。这可能是一个网站、Web 服务、内部系统等。可以通过网络扫描、漏洞报告、安全评估等方式来发现潜在的目标。分析应用程序逻辑:了解目标应用程序的功能和业务逻辑&…...

2.初始sui move

vscode安装move插件 查看sui 客户端版本号 sui client --version 创建新项目 sui move new <项目名> sui move new hello_world 项目目录结构&#xff1a; hello_world ├── Move.toml ├── sources │ └── hello_world.move └── tests└── hello_world…...

数据结构--排序算法

目录 一.排序相关概念二.常见排序算法1.堆排序2.插入排序3.希尔排序4.选择排序5.冒泡排序6.快速排序1.快速排序--递归(未优化)2.快速排序--递归(优化)3.快速排序--非递归 7.归并排序1.归并排序--递归2.归并排序--非递归 一.排序相关概念 排序&#xff1a;使一串记录按照某个关…...

day60 图论章节刷题Part10(Floyd 算法、A * 算法)

Floyd 算法 思路&#xff1a;本题是多源最短路问题&#xff0c;使用Floyd算法求解。Floyd 算法对边的权值正负没有要求&#xff0c;核心思想是动态规划。 我们使用动规五部曲来理解和应用Floyd算法&#xff1a; 1、确定dp数组&#xff08;dp table&#xff09;以及下标的含义…...

UI架构解说

UI&#xff08;用户界面&#xff0c;User Interface&#xff09; 是指用户与软件或硬件系统进行交互的界面。 它是用户与系统之间的桥梁&#xff0c;允许用户通过视觉元素、交互组件和反馈机制来操作和控制应用程序或设备。 UI 设计的目标是提供直观、易用和愉悦的用户体验&a…...

车机安装第三方软件实现打开软件全屏教程

简介 越来越多的车友实现安装第三方软件了&#xff0c;但是有的车机的状态栏或者导航栏会遮挡安装的第三方软件。这样的话&#xff0c;第三方软件就会显示不全&#xff0c;体验感非常不好。所以&#xff0c;下面我教一下大家如何使用东君应用管家来实现打开第三方软件全屏。 全…...

八大技术架构与演进2

垂直分库架构 当数据量不断增大&#xff0c;大量的数据都存储在一个库中就已经不太够用了&#xff0c;这时候就可以讲不同的数据分类别存储Mycat也支持在大表拆分为小标的情况下进行访问 但是这种做法其实是增加了数据库的运维难度&#xff0c;这种其实也就叫做分布式数据库&…...

ReactPress技术揭秘

ReactPress Github项目地址&#xff1a;https://github.com/fecommunity/reactpress 欢迎Star。 一、引言 ReactPress是一个基于React构建的开源发布平台&#xff0c;它不仅可以帮助用户在支持React和MySQL数据库的服务器上快速搭建自己的博客或网站&#xff0c;还能作为一个…...

Javascript高级—如何实现一个类型判断函数?

实现一个类型判断函数 判断null判断基础类型使用Object.prototype.toString.call(target)来判断引用类型 [!NOTE] 注意&#xff1a; 一定是使用call来调用&#xff0c;不然是判断的Object.prototype的类型 之所以要先判断是否为基本类型是因为&#xff1a;虽然Object.prototyp…...

asitop macOS 终端 性能监控

macOS 终端 性能监控 安装 pip python3 -m ensurepip# pip3 --version pip 21.2.4安装 asitop pip3 install asitop运行 sudo asitop参考 asitopgithub asitopHow to Install pip on Mac...

Unity学习笔记(4):人物和基本组件

文章目录 前言开发环境新增角色添加组件RigidBody 2D全局项目设置Edit 给地图添加碰撞体 总结 前言 今天不加班&#xff0c;有空闲时间。争取一天学一课&#xff0c;养成习惯 开发环境 Unity 6windows 11vs studio 2022Unity2022.2 最新教程《勇士传说》入门到进阶&#xff…...

【深圳大学/大学物理实验2】弗兰克-赫兹实验预习题参考

一、单选题 共 13 小题 共 78 分 1. (6分)第一栅极电压UG1、第二栅极电压UG2和减速电压UP的作用分别是&#xff08; &#xff09; 学生答案&#xff1a;C √ A. 使电子加速&#xff0c;消除阴极电子散射&#xff0c;使电子减速 B. 产生并加速电子&#xff0c;使电子加速&…...

vue2.7.14 + vant + vue cli脚手架转vite启动运行问题记录

文章目录 前言方案一&#xff08;借用插件转换&#xff09;启动命令&#xff0c;转换方案一转换遇到的问题 方案二&#xff08;手动调整&#xff09;方案两者对比小结 前言 vue cli 脚手架转成vite启动 简单说说这个项目的一些底层基本结构哈&#xff0c;以及写这篇博客的目的…...

Java基础-内部类与异常处理

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 一、Java 内部类 什么是内部类&#xff1f; 使用内部类的优点 访问局部变量的限制 内部类和继承 内部…...

vue2或vue3的name属性有什么作用?

在 Vue.js&#xff08;无论是 Vue 2 还是 Vue 3&#xff09;中&#xff0c;组件的 name 属性有几个重要的用途。虽然它不是必须的&#xff0c;但在某些情况下非常有用。以下是 name 属性的一些主要作用&#xff1a; 1. 调试工具 Vue Devtools 和其他调试工具会使用组件的 nam…...

【FOC进阶日记】实战篇③ 电机关键数据采集方法

作者 | 量子君 微信公众号 | 极客工作室 【FOC进阶日记】专栏目录 第一章 实战篇① FOC与SVPWM详解 第二章 实战篇② 自发电控制算法 第三章 实战篇③ 电机关键数据采集方法 文章目录 前言一、M法(从路程入手):二、T法(从时间入手)三、M/T测速法:四、实现过程:总结前言…...

XSS安全基础

欢迎关注公众号【测试开发备忘录】&#xff0c;交流学习经验 XSS 类型&#xff1a; 反射型XSS&#xff1a;简单的把用户输入的数据“反射”给浏览器&#xff0c;将恶意链接嵌入&#xff0c;非持久&#xff1b; 存储型XSS&#xff1a;把用户输入的数据“存储”在服务端&#xf…...

【计网不挂科】计算机网络期末考试——【选择题&填空题&判断题&简述题】试卷(3)

前言 大家好吖&#xff0c;欢迎来到 YY 滴计算机网络 系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 本博客主要内容&#xff0c;收纳了一部门基本的计算机网络题目&#xff0c;供yy应对期中考试复习。大家可以参考 本章是去答案版本。带答案的版本在下…...