HTTPS的工作原理深入解析
在当今互联网时代,网络安全已经成为了一个备受关注的话题。随着越来越多的个人隐私和商业数据被传输在网络中,如何确保这些数据在传输过程中的安全性成为了每个网络开发者和用户关注的核心问题之一。而HTTPS(HyperText Transfer Protocol Secure)作为一种安全的通信协议,成为了确保数据在传输过程中的机密性、完整性和身份验证的重要保障。
在这篇文章中,我们将详细分析HTTPS的工作原理,探讨其如何通过加密、身份验证和数据完整性验证,保证我们在互联网上的安全通信。本文内容包括HTTPS的基本概念、工作流程、相关协议、加密技术等多个方面,力求为读者提供对HTTPS全面而深入的理解。
一、HTTPS概述
1.1 什么是HTTPS?
HTTPS是基于HTTP协议之上的安全协议,其全称为“HyperText Transfer Protocol Secure”,即“超文本传输安全协议”。它的主要作用是通过在HTTP协议的基础上增加加密和认证机制,确保用户与网站之间的数据传输安全。
与HTTP协议不同,HTTP传输的数据是明文的,任何第三方都可以窃听或篡改数据。而HTTPS则通过使用SSL/TLS加密协议对数据进行加密,从而保证了数据在传输过程中不被中途窃听和篡改。
HTTPS主要解决了三个安全问题:
- 数据加密:确保数据在传输过程中不被窃取。
- 数据完整性:确保数据在传输过程中不被篡改。
- 身份验证:确保与用户通信的网站是其所声称的网站,而非伪造的恶意网站。
1.2 HTTPS的作用
HTTPS的作用不仅仅是保证数据的机密性和完整性,还能为用户提供一种身份验证机制,防止中间人攻击(Man-in-the-Middle, MITM),即防止攻击者在数据传输过程中拦截、篡改或伪装成另一方。
通过HTTPS协议,用户能够在网络上与可信任的网站建立加密连接,避免了很多潜在的网络攻击,包括:
- 窃听:攻击者监听通信内容并获取敏感信息。
- 篡改:攻击者修改数据内容或劫持会话。
- 伪造身份:攻击者冒充合法网站进行欺骗。
二、HTTPS的工作流程
HTTPS的工作原理依赖于SSL/TLS协议。SSL(Secure Sockets Layer)是最早的安全协议,但由于其存在多种安全漏洞,已经被TLS(Transport Layer Security)协议所替代。因此,现在的HTTPS大多数是基于TLS协议的。
2.1 SSL/TLS协议简介
SSL/TLS协议提供了安全通信的基本框架,它是HTTPS的核心技术之一。SSL/TLS协议主要通过以下三个关键技术来实现网络安全:
- 对称加密:用相同的密钥对数据进行加密和解密。
- 非对称加密:用公钥加密数据,用私钥解密。
- 数字证书:由权威的第三方认证机构(CA)颁发,用于证明通信双方的身份。
SSL/TLS协议的基本流程如下:
- 客户端发起请求:客户端(浏览器)向服务器发送HTTPS请求,要求建立安全连接。
- 服务器发送证书:服务器向客户端发送其SSL/TLS证书,证书中包含了服务器的公钥及其他信息。
- 客户端验证证书:客户端检查证书是否有效,是否由可信的证书颁发机构(CA)签发,并验证证书中的域名与访问的网站是否匹配。
- 密钥交换:客户端生成一个随机的预主密钥(pre-master secret),并使用服务器的公钥对其进行加密,发送给服务器。
- 会话密钥生成:客户端和服务器使用预主密钥生成对称加密的会话密钥,开始加密通信。
- 加密通信:在双方确认建立了安全的连接后,开始加密的数据传输。
2.2 HTTPS握手过程
HTTPS的握手过程涉及了公钥加密、私钥解密、证书验证等多个步骤。下面我们将详细描述HTTPS握手过程的每一步:
步骤1:客户端发起请求
当用户在浏览器中输入HTTPS地址时,浏览器会向服务器发送一个“Client Hello”消息,表示请求建立安全连接。该消息包括:
- 客户端支持的SSL/TLS协议版本。
- 客户端支持的加密算法(如RSA、AES等)。
- 客户端生成的随机数(用于生成密钥)。
步骤2:服务器响应并发送证书
服务器收到客户端的请求后,响应一个“Server Hello”消息,其中包含了服务器选择的SSL/TLS协议版本和加密算法。此外,服务器还会发送其SSL/TLS证书,证书中包含了服务器的公钥、证书颁发机构(CA)的信息及证书的有效期等。
步骤3:客户端验证服务器证书
客户端在收到服务器证书后,会进行证书验证:
- 检查证书是否由受信任的CA签发。
- 检查证书的有效期。
- 检查证书中的域名是否与请求的域名匹配。
如果证书验证通过,客户端继续与服务器建立连接;如果证书无效,客户端会提示用户并中止连接。
步骤4:客户端生成预主密钥并发送给服务器
客户端生成一个“预主密钥”(pre-master secret),这个密钥是一个随机生成的字符串。客户端使用服务器的公钥对预主密钥进行加密,并将其发送给服务器。
步骤5:服务器解密并生成会话密钥
服务器使用自己的私钥解密客户端发送过来的加密的预主密钥。然后,客户端和服务器根据预主密钥生成对称加密的会话密钥(session key)。
步骤6:加密通信
一旦会话密钥建立,客户端和服务器就可以开始加密通信。所有之后的数据交换都将使用会话密钥进行对称加密和解密。
三、HTTPS的加密技术
HTTPS的安全性主要依赖于加密技术,尤其是SSL/TLS协议中的加密机制。加密技术大致可以分为两类:对称加密和非对称加密。
3.1 对称加密
对称加密使用相同的密钥来加密和解密数据。对称加密算法的速度较快,因此适用于加密大量数据。在HTTPS中,一旦建立了安全的连接,客户端和服务器就会使用对称加密来加密和解密通信内容。
常见的对称加密算法有:
- AES(Advanced Encryption Standard):广泛使用的加密算法,支持128、192、256位密钥长度。
- 3DES(Triple DES):对DES算法的三重加密,已逐渐被AES替代。
3.2 非对称加密
非对称加密使用一对密钥进行加密和解密:公钥和私钥。公钥用于加密,私钥用于解密。在HTTPS协议的握手过程中,非对称加密用于密钥交换阶段,客户端使用服务器的公钥加密预主密钥,并发送给服务器,服务器使用私钥解密。
常见的非对称加密算法有:
- RSA:一种广泛使用的公钥加密算法。
- ECC(Elliptic Curve Cryptography):基于椭圆曲线的加密算法,相比RSA具有更高的安全性和效率。
3.3 哈希算法
哈希算法用于确保数据的完整性,能够生成数据的“数字指纹”。在HTTPS中,哈希算法用于生成消息摘要(message digest),用于检查数据在传输过程中是否被篡改。
常见的哈希算法有:
- SHA-256(Secure Hash Algorithm 256):一种常用的安全哈希算法,生成256位的哈希值。
- MD5(Message Digest Algorithm 5):较早的哈希算法,由于安全性问题,现在已经不再推荐使用。
四、HTTPS的证书与信任体系
HTTPS的安全性不仅仅依赖于加密技术,还依赖于数字证书和公钥基础设施(PKI)体系。数字证书由受信任的第三方机构(CA)签发,确保服务器身份的合法性。
4.1 数字证书
数字证书包含了公钥、证书持有者的信息、证书颁发机构(CA)的签名等内容。通过数字证书,客户端可以验证服务器的身份,确保与其通信的是合法的服务器,而非伪造的恶意网站。
数字证书包括:
- 服务器证书:由CA签发,证明服务器的身份。
- 客户端证书:有时服务器也需要验证客户端身份,这时需要客户端提供数字证书。
4.2 证书链与根证书
数字证书并不是直接由CA签发给服务器的,而是通过一系列的签名构成证书链。根证书是信任链的最顶端,由公认的可信证书颁发机构颁发,并预先安装在客户端或操作系统中。客户端会通过验证证书链中的每一层,确保证书的真实性。
五、HTTPS的优势与不足
5.1 HTTPS的优势
- 数据加密:HTTPS通过SSL/TLS协议对数据进行加密,保障数据传输的机密性。
- 数据完整性:通过哈希算法确保数据在传输过程中不被篡改。
- 身份验证:通过数字证书确保与网站通信的双方身份的合法性。
- 防止中间人攻击:通过公钥加密和私钥解密机制,防止中间人攻击。
5.2 HTTPS的不足
- 性能开销:HTTPS协议比HTTP协议增加了加密和解密的计算负担,可能会对服务器和客户端性能产生影响,尤其是在使用较为复杂的加密算法时。
- 证书成本:虽然现在许多CA提供免费的SSL证书,但企业或大型网站可能需要购买付费证书,尤其是EV证书(Extended Validation Certificate)。
- 实施复杂性:配置HTTPS相对较复杂,需要正确配置证书、密钥交换机制和加密算法等。
六、总结
HTTPS是保证现代互联网通信安全的关键协议,其核心原理在于通过SSL/TLS协议提供加密、身份验证和数据完整性保障。通过对称加密、非对称加密和哈希算法,HTTPS能够有效防止中间人攻击、数据窃听和数据篡改。
尽管HTTPS协议在实施上有一定的复杂性和性能开销,但其在网络安全中的重要性是毋庸置疑的。随着互联网安全问题的日益严峻,HTTPS协议已经成为了现代互联网应用中不可或缺的一部分,特别是在金融、电商和社交等涉及敏感数据的网站中,HTTPS已成为标准配置。
理解HTTPS的工作原理,不仅对于开发者在实际工作中解决安全问题至关重要,也能帮助用户识别安全威胁,避免个人隐私和数据受到侵害。在未来的互联网世界中,HTTPS将继续发挥其保护网络通信安全的核心作用。
相关文章:
HTTPS的工作原理深入解析
在当今互联网时代,网络安全已经成为了一个备受关注的话题。随着越来越多的个人隐私和商业数据被传输在网络中,如何确保这些数据在传输过程中的安全性成为了每个网络开发者和用户关注的核心问题之一。而HTTPS(HyperText Transfer Protocol Sec…...
pandas.core.frame.DataFrame怎么进行对象内容的读写
在 Python 中,pandas.core.frame.DataFrame 是 Pandas 数据库的核心数据结构,可以方便地读取和操作表格数据。以下是几种常见的读取内容的方法: 读取特定列 通过列名获取数据。 # 假设 df 是一个 DataFrame data df["列名"] # …...
OFCA-OpenHarmony人才认证题库答案
单选题 1.[单选题] 位于后台的应用,启动组件需校验的权限是: A: ohos.permission.DISTRIBUTED_DATASYNC B: ohos.permission.START_ABILITIES_FROM_BACKGROUND C: ohos.permission.ABILITY_BACKGROUND_COMMUNICATION D: ohos.permission.START_INVISIBLE_ABIL…...
若依微服务如何获取用户登录信息
文章目录 1、需求提出2、应用场景3、解决思路4、注意事项5、完整代码第一步:后端获取当前用户信息第二步:前端获取当前用户信息 6、运行结果后端测试:前端展示: 总结 1、需求提出 在微服务架构中,获取当前用户的登录信…...
题目 2778: 判断数正负
题目 2778: 判断数正负 时间限制: 2s 内存限制: 192MB 提交: 12161 解决: 6681 题目描述 给定一个整数N,判断其正负。 输入格式 一个整数N(-109 < N < 109) 输出格式 如果N > 0, 输出positive; 如果N 0, 输出zero; 如果N < 0, 输…...
【Hexo】博客自动生成AI摘要
工具介绍 如何让博客支持AI摘要,使用TianliGPT自动生成文章的AI摘要 摘要AI-文章摘要生成工具 文章摘要是一个专业的文字摘要生成工具,你可以将需要提取摘要的文本内容发送给TianliGPT,稍等一会他就可以给你发送一个基于这段文本内容的摘要。…...
vue3-count-to实现数字动态增长效果
vue3-count-to 是一个用于 Vue 3的数字计数动画库,常用于在页面上实现数字的动态增长效果,类似于从某个起始值渐变到目标值的效果。它可以用来显示各种数字、统计数据或展示动画效果。 1 安装 vue3-count-to 首先,你需要安装 vue3-count-to …...
第一课【输入输出】(题解)
1.向世界问好 题目描述 编程输出以下内容: Hello World! Im a C program. 输入格式 本题无输入。 输出格式 请按照样例输出,注意大小写、空格、感叹号,句号,单引号都必须使用英文输入法里的符号。 样例输入/输出 输入数据 1 本题无…...
边缘AI和智能音频专家XMOS全球首家增值经销商(VAR)落地中国
强强合作——XMOS与飞腾云达成全球首家增值经销协议以用智能音频技术和产品服务全球厂商和消费者 中国深圳,2024年12月——全球领先的软件定义系统级芯片(SoC)开发商XMOS宣布:公司已与飞腾云科技达成增值分销协议,授权…...
实战 | 某院校小程序记录
视频教程在我主页简介里 目录: 前言: 渗透思路 1.绕过前端 2.信息泄露 3.爆破用户账号密码 4.信息泄露2 结束 前言: 遇到一个学校小程序的站点,只在前端登录口做了校验,后端没有任何校验,奇葩弱口令离…...
正则表达式——参考视频B站《奇乐编程学院》
智能指针 一、背景🎈1.1. 模式匹配🎈1.2. 文本替换🎈1.3. 数据验证🎈1.4. 信息提取🎈1.5. 拆分字符串🎈1.6. 高级搜索功能 二、原料2.1 参考视频2.2 验证网址 三、用法3.1 限定符3.1.1 ?3.1.2 *3.1.3 3.1.…...
【Vue + Print.js】前端打印, 自定义字体大小, 自定义样式, 封装共享样式
在前端开发中,打印功能是一个常见的需求,尤其是在生成报表、打印用户资料或者导出文档时,通常需要通过前端代码进行打印。Print.js 是一个非常流行的 JavaScript 库,它提供了简单而强大的打印功能,允许你灵活控制打印内…...
python模拟练习第一期
问题一 如果一个数 p 是个质数,同时又是整数 a的约数,则 p 称为 a的一个质因数。 请问 2024 有多少个质因数? 步骤 1: 分解 2024 首先,2024 是偶数,说明可以被 2 整除。我们从 2 开始进行除法分解: 202…...
Java-25 深入浅出 Spring - 实现简易Ioc-01 Servlet介绍 基本代码编写
点一下关注吧!!!非常感谢!!持续更新!!! 大数据篇正在更新!https://blog.csdn.net/w776341482/category_12713819.html 目前已经更新到了: MyBatisÿ…...
华硕奥创软件在线安装和离线安装方法
华硕奥创软件在线安装和离线安装方法 1. 华硕奥创软件介绍2. 华硕奥创软件在线安装2.1 第一种2.2 第二种 3. 华硕奥创软件离线安装3.1 概述3.2 华硕奥创软件离线包下载方式 4. 卸载华硕奥创软件4.1 概述4.2 华硕奥创卸载软件下载与使用方式 结束语 1. 华硕奥创软件介绍 华硕奥…...
AI监控赋能健身馆与游泳馆全方位守护,提升安全效率
一、AI视频监控技术的崛起 随着人工智能技术的不断发展,AI视频监控正成为各行业保障安全、提升效率的关键工具。相比传统监控系统,AI技术赋予监控系统实时分析、智能识别和精准预警的能力,让“被动监视”转变为“主动防控”。 二、AI监控应用…...
SQL Server数据库还原差异备份
适用范围:SQL Server 本主题介绍如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中还原差异数据库备份。 限制和局限 不允许在显式或隐式事务中使用 RESTORE。 无法在早期版本的 SQL Server 中还原较新版本的 SQL Server创建的备份。 在…...
Python 给 Excel 写入数据的四种方法
Python 在数据处理领域应用广泛,其中与 Excel 文件的交互是常见需求之一。 本文将介绍四种使用 Python 给 Excel 文件写入数据的方法,并结合生活中的例子进行解释,帮助新手小白快速上手。 1. 使用 openpyxl 库 openpyxl 是一个用于读写 Exc…...
实验14 RNN的记忆能力和梯度爆炸实验
一 循环神经网络的记忆能力 1.数据集构建 创建了一个DigitSumDataset 类,包括初始化函数init、数据生成函数 generate_data、数据加载函数 load_data、__len__ 方法、__getitem__ 方法。 init函数:接受的参数是data_path( 存放数据集的目录…...
【电子通识】电流倒灌为什么需要注意?
电流倒灌是一个很常见的问题,以“IO电流倒灌”为关键词在百度上进行搜索,可以找到很多相关案例。 电流倒灌问题在5V电平的单片机时代几乎不会发生,主要是因为5V单片的IO耐压值高,单片机内部结构对IO保护设计很好。 到了3.3V单片机时代,这类问题有一定的偶发性,但…...
Elasticsearch 集群部署
Elasticsearch 是一个分布式的搜索和分析引擎,广泛应用于日志分析、全文搜索、实时数据分析等场景。它以其高性能、高可用性和易用性而著称。本文档将引导您完成一个基本的 Elasticsearch 集群配置,包括节点间的通信、客户端访问、安全设置等关键步骤。我…...
Windows系统VSCode 搭建ESP-IDF环境
VS Code,安装ESP-IDF插件 快捷键CTRLSHIFTP,弹出显示所有命令的窗口,选择ESP-IDF的欢迎 使用第一个选项,要选择一个ESP-IDF版本,选最新的就行 点击Install,等待下载 提示安装成功,如果过程中出现python已存…...
在centos 7.9上面安装mingw交叉编译工具
1.说明 为了在centos上面编译windows的程序,需要安装mingw工具,mingw工具是可以编译windows程序的一些工具链,使用方式和linux一致 2.下载脚本 使用脚本方式编译,github的脚本位置:https://github.com/Zeranoe/ming…...
【Java笔记】LinkedList 底层结构
一、LinkedList 的全面说明 LinkedList底层实现了双向链表和双端队列特点可以添加任意元素(元素可以重复),包括null线程不安全,没有实现同步 二、LinkedList 的底层操作机制 三、LinkedList的增删改查案例 public class LinkedListCRUD { public stati…...
【深入理解java中的设计模式】
深入理解java中的设计模式 设计模式是软件工程中的最佳实践,它们提供了解决特定问题的模板或蓝图。在Java中,设计模式通常被分为三大类:创建型模式、结构型模式和行为型模式。 创建型模式 单例模式 (Singleton Pattern) 描述: 保证一个类…...
详解下c语言下的多维数组和指针数组
在实际c语言编程中,三维及以上数组我们使用的很少,二维数组我们使用得较多。说到数组,又不得关联到指针,因为他们两者的联系太紧密了。今天我们就详细介绍下c语言下的多维数组(主要是介绍二维数组)和指针。 一、二维数组 1.1&am…...
如何使用 Python 发送 HTTP 请求?
在Python中发送HTTP请求最常用的库是requests,它提供了简单易用的API来发送各种类型的HTTP请求。 除此之外,还有标准库中的http.client(以前叫做httplib)和urllib,但它们相对更底层,代码量较大,…...
活动预告 |【Part2】Microsoft Azure 在线技术公开课:基础知识
课程介绍 参加“Azure 在线技术公开课:基础知识”活动,培养有助于创造新的技术可能性的技能并探索基础云概念。参加我们举办的本次免费培训活动,扩充自身的云模型和云服务类型知识。你还可以查看以计算、网络和存储为核心的 Azure 服务。 课…...
神经网络基础-激活函数
文章目录 1. 什么是激活函数2. sigmoid 激活函数3. tanh 激活函数4. ReLU 激活函数5. SoftMax 激活函数6. 其他常见的激活函数7. 激活函数的选择方法 1. 什么是激活函数 激活函数用于对每层的输出数据进行变换, 进而为整个网络注入了非线性因素。此时, 神经网络就可以拟合各种…...
Debedium如何忽略Oracle的purge命令
报错 截至目前3.0版本,Debezium的Oracle Connector并不支持purge table这个指令。 所以,在使用Debezium解析Oracle变更的时候,如果在源端执行了类似 purge table "$BIN… 的语句,就会导致Debezium罢工,日志里显…...
基于 webRTC Vue 的局域网 文件传输工具
文件传输工具,匿名加密,只需访问网页,即可连接到其他设备,基于 webRTC 和 Vue.js coturn TURN 服务器 docker pull coturn/coturn docker run -d --networkhost \-v $(pwd)/my.conf:/etc/coturn/turnserver.conf \coturn/coturn…...
opencv Canny边缘检测
canny阈值越高,检测到的边缘数量越少 # 导入OpenCV库,用于图像处理 import cv2 import numpy as np # 从matplotlib库中导入pyplot模块,用于绘制图像 from matplotlib import pyplot as plt # 创建一个名为window的窗口,窗口大小自…...
数仓高频面试 | 数仓为什么要分层
大家好,我是大D呀。 关于数仓分层,在面试过程中几乎是必问的。不过,面试官一般也不会直接考你数仓为什么要分层,而是在你介绍项目时,可能会换一种形式来穿插着问,比如数据链路为什么要这样设计,…...
Coconut:探索大语言模型的连续思维链推理能力
目录 简介: 什么是Coconut? 为什么我们需要Coconut? Coconut如何工作? 实验结果怎么样? Coconut的优势: 结论: 简介: 你有没有想过,计算机是如何像人类一样思考问…...
2024年安徽省职业院校技能大赛水利工程BIM建模与应用
2024年安徽省职业院校技能大赛 赛 项 规 程 赛项名称: 水利工程BIM建模与应用 赛项组别: 高职组 承办单位: 安徽水利水电职业技术学院 目录 一、赛项名称… 1 二、竞赛目标… 1 三、竞赛内容… 2 四、竞赛方式… 3 五、竞赛流程… 4 七、技术…...
vue常用命令汇总
nvm 一个nodejs版本管理工具,解决node.js各种版本存在不兼容现象可以通过它可以安装和切换不同版本的node.js。 npm 可以管理 nodejs 的第三方插件。 vue-cli 是Vue提供的一个官方cli,专门为单页面应用快速搭建繁杂的脚手架。 nginx 是一个高性能的HTTP和反向代理we…...
ios上架构建版本没苹果电脑怎么上传
在app store上架的时候,遇到下图的问题: 点击蓝色加号的时候,并没有构建版本可以选择 从图中可以看出,它给我们推荐了很多上传工具,比如xcode、transporter或命令行工具之类的,但是这些工具都是只能在苹果…...
某名校考研自命题C++程序设计——近10年真题汇总(上)
本帖更新一些某校的编程真题,总体来说不难,考察的都是基本功,92高校大一期末的难度,不过有些细节颇为繁琐,各位还是需要一定程度上注意的~ 目录 一.分数求和 二.大小写字母转换 三.判断当年天序 四.交替合并字符串…...
【ChatGPT】解锁AI思维链:如何让机器像人类一样思考?
在人工智能领域,我们一直在追求让机器像人类一样思考。然而,即使是最先进的AI,也常常被诟病缺乏“常识”,难以理解复杂问题,更不用说像人类一样进行逻辑推理和解决问题了。最经常的表现就是遇到不会的地方,…...
️️️ 避坑指南:如何修复国密gmssl 库填充问题并提炼优秀加密实践20241212
🛡️ 避坑指南:如何修复国密gmssl 库填充问题并提炼优秀加密实践 ✨ 引言 在当下的数据安全环境中,SM4作为中国国家密码算法的代表性选择,被广泛应用于金融、通信和政府领域。然而,在实际开发中,即便是开…...
鸿蒙ArkTS如何实现数据可视化:饼状图/柱状图/折线图
鸿蒙数据可视化系列 在我们鸿蒙APP开发中,经常需要使用到一些图表的开发,本文主要介绍使用 McCharts 框架绘制柱状图的方法 配套指导视频地址:鸿蒙数据可视化系列-McCharts使用介绍_哔哩哔哩_bilibili 1. 第三方库介绍 1.1. McCharts Mc…...
Win10环境vscode+latex+中文快速配置
安装vscodelatex workshop 配置: {"liveServer.settings.donotVerifyTags": true,"liveServer.settings.donotShowInfoMsg": true,"explorer.confirmDelete": false,"files.autoSave": "afterDelay","exp…...
Android14 AOSP支持短按关机
修改frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java diff --git a/base/services/core/java/com/android/server/policy/PhoneWindowManager.java b/base/services/core/java/com/android/server/policy/PhoneWindowManager.java in…...
康耐视智能相机(Insight)通过ModbusTCP发送字符串到倍福(BECKHOFF)PLC中
文章目录 1.背景2.分析3.实现3.1.PLC的ModbusTCP_Server3.1.1.安装TF6250-Modbus-TCP3.1.2.PLC设置 3.2.智能相机的ModbusTCP_Client3.2.1.了解ModbusTCP的协议3.2.2.根据协议写代码3.2.2.1.纯函数代码3.2.2.2.脚本代码 3.2.3.非脚本处理时的代码逻辑图3.2.4.关于代码的问题及解…...
OpenCV 图像变换与处理实战
OpenCV快速通关 第一章:OpenCV 简介与环境搭建 第二章:OpenCV 图像基本操作 第三章:OpenCV 图像变换与处理实战 OpenCV 图像变换与处理实战 OpenCV快速通关OpenCV 图像变换与处理实战一、OpenCV 基础与图像处理概览二、图像变换理论精析三、…...
meta llama 大模型一个基础语言模型的集合
LLaMA 是一个基础语言模型的集合,参数范围从 7B 到 65B。我们在数万亿个 Token 上训练我们的模型,并表明可以专门使用公开可用的数据集来训练最先进的模型,而无需诉诸专有的和无法访问的数据集。特别是,LLaMA-13B 在大多数基准测试…...
【MySQL — 数据库基础】深入理解数据库服务与数据库关系、MySQL连接创建、客户端工具及架构解析
目录 1. 数据库服务&数据库&表之间的关系 1.1 复习 my.ini 1.2 MYSQL服务基于mysqld启动而启动 1.3 数据库服务的具体含义 1.4 数据库服务&数据库&表之间的关系 2. 客户端工具 2.1 客户端连接MySQL服务器 2.2 客…...
详解多租户架构下的资源隔离模式
文章目录 0.简介1.多租户概念1.1 基本概念1.2 单租户 vs 多租户 2.实现方案2.1 独立数据库方案2.1.1 优点2.1.2 缺点2.1.3 应用场景 2.2 共享数据库,独立 Schema2.2.1 优点2.2.2 缺点2.2.3 应用场景 2.3 共享数据库、共享Schema、共享表2.3.1 优点2.3.2 缺点2.3.3 应…...
Bananna Pi开源社区联合矽昌通信打造开源的低成本Wifi5路由器
香蕉派 BPI-Wifi5 路由器采用矽昌SF19A2890S2芯片方案设计。它是一款高性能无线路由器,适用于小微企业、家庭和其他网络环境。Banana Pi开源社区提供整体解决方案。所有代码开源,用户可以在上面自由开发自己的应用。 Banana Pi wifi5 路由器github代码: …...
根据契约进行分析--录像店案例研究01
Richard Mitchell 著,zhen_lei 译 本文包括录像店案例研究的一些片段,用来说明根据契约进行分析的原理。本文假定读者已经从其它渠道学习了一些关于根据契约进行分析的方法。 完整的一套模型可以写成一本书。这些选择的片段用来说明开发的某些方面&…...