HTTP和HTTPS协议详解
HTTP和HTTPS协议详解
- HTTP详解
- 什么是http协议
- http协议的发展史
- http0.9
- http1.0
- http1.1
- http2.0
- http协议的格式
- URI和URL
- 请求request
- 响应response
- http协议完整的请求与响应流程
- HTTPS详解
- 为什么使用HTTPS
- SSL协议
- HTTPS通信过程
- TLS协议
HTTP详解
什么是http协议
1、全称Hyper Text Transfer Protocol(超文本传输协议)
- 普通文本:文件内存放的是一些人类认识的文字符号(汉字、英语、阿拉伯数字)
- 超级文本:除了普通文本内容之外,还有视频、图片、语音、超链接
http协议都能传输上述内容,所以说http协议是专用于传输超文本的协议
2、http主要用于B/S架构
3、http是基于tcp协议的
强调:基于http协议发包之前,必须先建立tcp协议的双向通路
http协议的发展史
http0.9
请求方法:只支持GET方法
请求头:不支持
响应信息:只支持纯文本,不支持图片
无连接/短连接/非持久连接:利用完 tcp 连接之后会立即回收,所以无连接指的不是说没有连接,而是说没有持久连接/长连接的http协议通信,先建立tcp连接,然后客户端发请求包,服务端收到后发送响应包,服务端一旦发送完响应包之后,服务端会立即主动断开tcp连接,下次http通信还需要重新建立tcp连接。 同一个用户在短期内访问多次服务端,那大量的时候都会消耗在重复创建tcp连接上,在高并发场景下,对服务端是非常大的消耗,客户端的访问速度也会非常的慢
无状态(一个http协议的请求无法标识自己的身份):http无法保存状态,比如登录状态,那意味着每次请求都需要重新输出一次账号密码来认证
http1.0
请求方法:支持PUT(增)、DELETE(删)、POST(改)、GET(查)
请求头:支持
响应信息:支持超文本
支持缓存
同一个用户在短期内访问多次服务端,不要重复建立tcp连接,而是能够共用一个tcp连接解决方案:支持持久连接/长连接 keep-alive
- 前提:发送完http响应包之后,服务端立即断tcp连接,这是服务端的默认行为,要改变这种默认行为,要客户端通知服务端才行
- 实现:
- 客户端在发送http的请求时,需要再请求头里带上connection: keep-alive这个参数
- 服务端的keepalive timeout设置要大于0
- 服务端收到后读取该参数,服务端会保持与这一个客户端tcp连接一段时间,响应时也会在响应头里放connection:keep-alive这个参数
- 该tcp会保持一段时间直到达到服务端设置的keepalive_timeout时间
- 补充:
- 在http1.0协议还需要你发请求时你自己加上connection: keep-alive这个参数
- 在http1.1协议里所有的请求都会自动加上connection: keep-alive,也就是说在htp1.1客户端默认就开启了长连接支持,配套的服务端也要开启(服务端的keepalive_timeout设置要大于0)
服务端要客户端有状态(让客户端每次发请求的时候都能标识自身的唯一性):解决方案是cookie、session、jwt
cookie机制:
- 访问一个站点,服务端返回的响应头会设置set-cookie: k1=v1;k2=v2
- 浏览器收到后,会根据set-cookie来设置存入本地的cookie值
- 下次请求该网站,浏览器会从本地cookie里取出cookie值,放到http请求的cookie字段里,发往服务端
- 特点:
- cookie是浏览器的功能,是放在客户端的
- cookie内存放的内容是可以被客户端篡改的
cookie机制+session机制:
- 访问一个站点,输入自己的账号密码进程认证,服务端收到请求之后认证通过,会产生一些标识用身份的数据
- 这些数据 —> value
- 把这些数据关联一个 —> key
- key:value
- key给客户端,存入cookie
- value放在服务端,称之为session
- 服务端会把key放入cookie放入set-cookie里,返回给客户端
- 客户端收到响应后,会把key存入本地的cookie
- 下次请求该网站,会带着该key去到目标站点,目标站点收到后,会根据key取出value,value里放着本次请求的身份
- 特点:
把保密数据放在服务端,称之为session数据,然后针对session数据生成一个key值存入客户端的cookie中- 可以防止篡改
- 在集群的场景下,需要做会话共享(session存入共享的地方)
- 通过会将session数据存入redis
- redis作为一个大家依赖的共享点,会影响集群的扩展性
总结cookie和session:
- 单用cookie来存放状态信息
- 优点:服务端不需要做会话共享
- 缺点:客户端可以算改状态信息,不安全
- cookie+session
- 优点:状态信息即session数据是存放在服务端的,状态不会被改
- 缺点:服务端需要做会话共享,增加了集群的耦合性
JWT(json web token):
- 服务端会将状态信息进行加密,然后把加密数据放入客户的cookie中,这个加密的数据称之为token —> 篡改的问题解决了
- 下次请求会从cookie中取出token带上一起发送给服务端,服务端收到后用加密算法解密 —> 不需要再做会话共享/保持
- 追求:服务端不保存状态
- 优点:不需要做会话共享、又能很安全
- 缺点:最大的缺点就是无法做到主动废弃掉某个token,一个token一旦下发之后,就只能等着该token,服务端无法做到主动废弃该token —> 想要做到随时都能主动废弃掉某个token,就需要开发额外的代码来支持
http1.1
默认所有请求都启用长连接,请求与响应头里都带着connection:keep-alive,对应服务端需要设置keepalive timeout大于0
Pipelining(请求流水线化/管道化)
分块传输编码chunked
http2.0
引入头信息压缩机制:头信息使用gzip或compress压缩后再发送
允许服务器有新数据时未经请求,主动向客户端发送资源,而无需客户端拉取,即服务器推送(server push)
http协议的格式
URI和URL
URI:统一资源标识符
URL:统一资源定位服务,是URI的一种具体实现
http://192.168.71.10:8080/a/b/1.txt?x=1&y=2&page=10#_label5
- http:// —> 协议部分。不写协议,默认http协议
- 192.168.71.10:8080 —> ip+port部分,不写端口默认服务端的端口是80
- /a/b/1.txt —> 路径部分,不写路径,默认加一个/结尾
- ?x=1&y=2&page=10 —> 请求参数部分
- #_label5 —> 锚
URN:也是URI的一种具体实现,例如:mailto:java-net@java.sun.com.
请求request
包含四部分:
- 请求首行:请求方法 请求的路径部分及后续部分 http协议版本
- GET /a.txt HTTP/1.1
- 请求头:都是 key:value 格式,用来定制一些参数
- 空行
- 请求体数据
请求方法:
- GET(查) ----> 请求的数据可以放在URL地址的?号后
- POST(改) ----> 携带请求体数据
- DELETE(删)
- PUT(增)
- HEAD:类似GET请求,不一样的是不会获取响应的数据,但是会获取响应头,而响应头包含着状态码,状态码代表着本次访问是否成功,所以HEAD主要用来检测某个资源是否可以正常访问
- OPTIONS:一般用作预检请求,在发真正请求之前先发个options请求预检一下服务端支持哪些http方法、跨域检测等
GET和POST的区别:
- 携带数据的方式不同
- 携带数据的话post更安全
- 传输数据大小
- GET与POST这两个方法本身没有限制
- 但因为GET方法的数据都放在URL地址中,而URL地址的长度在一些浏览器中是有限制
- 所以如果要传一些比较大的数据,不能用GET方法,应该使用POST方法把数据放入请求里传输
响应response
也是包含四部分:
- 响应首行:协议 状态码
- HTTP/1.1 200 OK
- 响应头
- set-cookie:要求浏览器把cookie信息存入本地
- cache-control:要求浏览器把一些文件缓存到本地
- connection:keep-alive:要求浏览器保持长连接
- Content-Type:text/html:告诉浏览器本次返回内容的格式
- text/plain 告诉浏览器本次返回的内容格式是普通文本
- 空行
- 响应体
状态码
- 2xx:代表访问成功
- 3xx:本次请求被重定向
- 4xx:客户端错误
- 404:客户端访问的资源不存在
- 403:客户端没有对目标资源的访问权限
- 5xx:服务端错误
- 503:服务端故障
http协议完整的请求与响应流程
浏览器访问一个URL地址:http://baidu.com:80/a/b/1.html
- 浏览器会先问本地DNS把域名baidu.com解析为ip地址
- 浏览器作为客户端会与目 ip:port 建立TCP三次握手
- 浏览器会基于HTTP协议封装请求包(OSI七层的封包流程)
- 服务端收到包(OSI七层的解包流程),拿到一个HTTP协议的请求包,按照HTTP协议来解析请求会拿到请求路径部分 /a/b/1.html,服务端会打开该文件(对一个文件描述符)把文件内容从硬盘读入内存,然后服务端程序会基于HTTP协议封装读入内存的数据,形成一个响应包,发给客户端浏览器
- 浏览器收到HTTP协议的响应包之后,先解析响应头,看到响应的状态码,知道本次是否成功,在解析响应头时,可以拿到Content-Type就知道该用什么数据格式来解析内容,如果值为 text/html 就会按照html代码的方式来解析返回的内容,再读取内容部分,当成html代码来解析
- 在解析html代码的过程中,有可能遇到css、jss、图片、视频等资源,会发起二次、三次…请求,直到把整个页面都渲染完毕
HTTPS详解
为什么使用HTTPS
http协议:明文传输,可能会遭到窃听、改、冒充/挟持,因此使用HTTP协议传输隐私信息非常不安全。
https:http协议+ssl协议,密文传输,可以防止窃听、算改,并且有ca权威机构认证服务端身份,可以防冒充/劫持
SSL协议
SSL是一种加密协议,对http协议通信的加强,可以防窃听、改、伪装/冒充
数字签名:防止篡改/丢失
- 把包的内容做hash校验得到的hash值称之为摘要 —> digest
- 服务端用自己的私钥对digest进行加密 —> 得到东西叫数字签名signature
- 客户端收到包之后先用公钥解开得到digest —> 重新hash,验证是否被篡改
数字证书:防止伪装/冒充
- CA中心:公认的权威认证中心,找一个证书中心为自己的公钥做认证。
- CA中心用自己的私钥,对服务端的公钥和其他相关信息一起加密,生成“数字证书”。
- 数字证书就是加了密的服务端公钥。
非对称加密
- 两个密码(公钥、私钥):公钥加密用私钥解密,私钥加密用公钥解密
- 优点:
- 公私分明,公钥任何人都可以获取,而私钥只有服务端自己手里有
- 安全性更高一些,只要私钥不泄露,就没法解开包
- 缺点:非对称加密的速度慢,不适合大规模数据加解密
对称加密
- 只有一个私钥,加解密用的都是同一套私钥
- 优点:加解密效率高
- 缺点:私钥的泄露几率高,一旦某一方泄露私钥,则加密信息就无法得到安全保障问题
SSL协议通信过程中即用了非对称加密,又用了对称加密
- 客户端先通过ssl通信的第二次握手获得服务端数字证书(内含公钥)
- 然后使用非对称加密传输对称加密的密钥(更安全),后面的数据传输就使用对称性加密(更高效)。
HTTPS通信过程
认证作用就是为了确定对方的真实性,避免其他人伪装/冒充,主要是通过CA机构对数字证书的认证,来判断访问对象真实性。
单向认证:客户端验证服务端的真假,防止有人冒充服务端
双向认证
- 客户端验证服务端的真假,防止有人冒充服务端
- 服务端也要认证客户端的真假,防止有人冒充客户端
TLS协议
SSL是一种技术,您的应用程序或浏览器可能使用该技术在任何网络上创建安全的加密通信通道。但是SSL是一种较老的技术,包含一些安全漏洞。传输层安全性协议(TLS)是SSL 的升级版本,用于修复现有 SSL 漏洞。TLS 可以更高效地进行身份验证,并继续支持加密的通信通道。
TLS协议就是一个升级版的SSL,由于SSL这一术语更为常用,所以我们通常仍将我们的安全证书称作SSL
相关文章:
HTTP和HTTPS协议详解
HTTP和HTTPS协议详解 HTTP详解什么是http协议http协议的发展史http0.9http1.0http1.1http2.0 http协议的格式URI和URL请求request响应response http协议完整的请求与响应流程 HTTPS详解为什么使用HTTPSSSL协议HTTPS通信过程TLS协议 HTTP详解 什么是http协议 1、全称Hyper Tex…...
实战:利用百度站长平台加速网站收录
本文转自:百万收录网 原文链接:https://www.baiwanshoulu.com/33.html 利用百度站长平台加速网站收录是一个实战性很强的过程,以下是一些具体的步骤和策略: 一、了解百度站长平台 百度站长平台是百度为网站管理员提供的一系列工…...
专门记录台式电脑常见问题
1、蓝屏死机,检查内存硬盘和cpu 2、拆内存条,用橡皮擦金手指 3、放主板静电,扣主板电池 4、系统时间不正确,主板电池没电 5、开机键坏了 6、电脑主机的风扇转,正常通电运行,但显示器没信号。看键盘的num键&…...
数据库系统概念第六版记录 一
1.关系型数据库 关系型数据库(Relational Database,简称 RDB)是基于关系模型的一种数据库,它通过表格的形式来组织和存储数据。每个表由若干行(记录)和列(字段)组成,数据…...
本地Ollama部署DeepSeek R1模型接入Word
目录 1.本地部署DeepSeek-R1模型 2.接入Word 3.效果演示 4.问题反馈 上一篇文章办公新利器:DeepSeekWord,让你的工作更高效-CSDN博客https://blog.csdn.net/qq_63708623/article/details/145418457?spm1001.2014.3001.5501https://blog.csdn.net/qq…...
Meta Sapiens AI论文解读:人类视觉模型基石初现,AI 未来走向何方?
一、引言 在本文中,我们将深入探讨 Meta AI 的一项新成果,该成果发表于一篇题为《Sapiens:人类视觉模型的基础》的研究论文中。这篇论文介绍了一系列模型,这些模型针对四项以人类为中心的基本任务,正如我们在上面的演示…...
输入类控件和多元素控件【QT】
文章目录 输入类控件QLineEdit Text EditCombo BoxSpin BoxDialSlider多元素控件QListWidget TableWidetTreeWidgetQGroupBoxTab Widget# QVBoxLayout# QHBoxLayoutQGridLayoutQFormLayout 输入类控件 QLineEdit 例如: 实现一个用户输入姓名 密码 电话 性别 的功能…...
一键开启/关闭deepseek
一键开启/关闭 Deepseek对应下载的模型一键开启 Deepseek,一键关闭Deepseek双击对应的bat,就可以启动https://mbd.pub/o/bread/Z56YmpZvbat 下载:https://mbd.pub/o/bread/Z56YmpZv 可以自己写下来,保存成bat文件,也可…...
gitea - fatal: Authentication failed
文章目录 gitea - fatal: Authentication failed概述run_gitea_on_my_pkm.bat 笔记删除windows凭证管理器中对应的url认证凭证启动gitea服务端的命令行正常用 TortoiseGit 提交代码备注END gitea - fatal: Authentication failed 概述 本地的git归档服务端使用gitea. 原来的用…...
Spring AI 智能体通过 MCP 集成本地文件数据
作者:刘军 Model Context Protocol(MCP)简介 模型上下文协议(即 Model Context Protocol,MCP) [ 1] 是一个开放协议,它规范了应用程序如何向大型语言模型(LLM)提供上下…...
音视频入门基础:RTP专题(5)——FFmpeg源码中,解析SDP的实现
一、引言 FFmpeg源码中通过ff_sdp_parse函数解析SDP。该函数定义在libavformat/rtsp.c中: int ff_sdp_parse(AVFormatContext *s, const char *content) {const char *p;int letter, i;char buf[SDP_MAX_SIZE], *q;SDPParseState sdp_parse_state { { 0 } }, *s1…...
MyBatis XML文件配置
目录 一、 配置连接字符串和MyBatis 二、书写持久层代码 2.1 添加Mapper接口 2.2 添加UserlnfoXMLMapper.xml 三、增删改查 3.1 、增(Insert) 3.2、删(Delete) 3.3、改 (Update) 3.4、查 (Select) MyBatisXML的方式需要以下两步&am…...
【Leetcode 热题 100】1143. 最长公共子序列
问题背景 给定两个字符串 t e x t 1 text_1 text1 和 t e x t 2 text_2 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 0 0。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变…...
【算法】动态规划专题④ ——LCS(最长公共子序列)+ LPS(最长回文子序列) python
目录 前置知识LCS举一反三LPS 前置知识 【算法】动态规划专题③ ——二维DP python 子序列定义为: 不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。 LCS 最长公共子序列 https://www.lanqiao.cn/problems/1189/learning/?p…...
Cesium点集中获取点的id,使用viewer.value.entities.getById报错的解决方法
错误代码: viewer.value.entities.getById(pickedObject.id) 报错: 可以正常获取movement.position但是一直出现如下报错,无法获得航点的id,通过断点定位为 viewer.value.entities.getById(pickedObject.id)导致的报错 解决方…...
360手机刷机 360手机解Bootloader 360手机ROOT
360手机刷机 360手机解Bootloader 360手机ROOT 问:360手机已停产,现在和以后,能刷机吗? 答:360手机,是肯定能刷机的 360手机资源下载网站 360手机-360手机刷机RootTwrp 360os.top 360rom.github.io 一、…...
深度探索DeepSeek-R1:AI大模型的本地应用与个人知识库构建
深度探索DeepSeek-R1:AI大模型的本地应用与个人知识库构建 引言 在当今这个信息爆炸的时代,如何高效地存储、处理和获取知识,已经成为每个人面临的挑战。想象一下,如果你能在没有互联网连接的情况下,构建一个属于自己…...
LabVIEW图像采集与应变场测量系统
开发了一种基于LabVIEW的图像采集与应变场测量系统,提供一种高精度、非接触式的测量技术,用于监测物体的全场位移和应变。系统整合了实时监控、数据记录和自动对焦等功能,适用于工程应用和科学研究。 项目背景 传统的位移和应变测量技术往往…...
解决DeepSeek服务器繁忙问题:本地部署与优化方案
deepseek服务器崩了,手把手教你如何在手机端部署一个VIP通道! 引言 随着人工智能技术的快速发展,DeepSeek等大语言模型的应用越来越广泛。然而,许多用户在使用过程中遇到了服务器繁忙、响应缓慢等问题。本文将探讨如何通过本地部…...
今日AI和商界事件(2025-02-05)
今日AI领域的相关事件主要包括以下几个方面: 一、DeepSeek引发全球关注 性能与成本优势: DeepSeek推出的R1模型性能出色,成本较低,在全球AI行业引发震动。该模型在数学、代码处理等方面性能优异,受到广泛赞誉。 平台…...
SQL 秒变 ER 图 sql转er图
🚀SQL 秒变 ER 图,校园小助手神了! 学数据库的宝子们集合🙋♀️ 是不是每次碰到 SQL 转 ER 图就头皮发麻?看着密密麻麻的代码,脑子直接死机,好不容易理清一点头绪,又被复杂的表关…...
SQL server 创建DB Link 详解
在日常工作中,经常涉及到跨库操作,为使跨数据库的操作变得更加灵活高效,我们可以在 SQL Server 中建立数据库链接( DB Link),实现 SQL Server 数据库与其他数据库(如 Oracle, MySQL 等ÿ…...
25.2.5学习记录
今天主要学的是哈希表的理论知识,但是都是c实现,C语言的代码实现还没有完全搞明白。 在写题的时候,懵懂的学着正确代码,用C语言模拟实现哈希表去解题。 在哈希表的理论知识中,学到哈希函数,了解哈希冲突产…...
C# List 列表综合运用实例⁓Hypak原始数据处理编程小结
C# List 列表综合运用实例⁓Hypak原始数据处理编程小结 1、一个数组解决很麻烦引出的问题1.1、RAW 文件尾部数据如下:1.2、自定义标头 ADD 或 DEL 的数据结构如下: 2、程序 C# 源代码的编写和剖析2.1、使用 ref 关键字,通过引用将参数传递,以…...
不可信的搜索路径(CWE-426)
漏洞描述:程序使用关键资源时(如动态链接库、执行文件、配置文件等)没有明确的指定资源的路径,而是依赖操作系统去搜索资源,这种行为可能被攻击者利用,通过在搜索优先级较高的目录放置不良资源,…...
Unity 2D实战小游戏开发跳跳鸟 - 记录显示最高分
上一篇文章中我们实现了游戏的开始界面,在开始界面中有一个最高分数的UI,本文将接着实现记录最高分数以及在开始界面中显示最高分数的功能。 添加跳跳鸟死亡事件 要记录最高分,则需要在跳跳鸟死亡时去进行判断当前的分数是否是最高分,如果是最高分则进行记录,如果低于之前…...
openeuler 22.03 lts sp4 使用 cri-o 和 静态 pod 的方式部署 k8s-v1.32.0 高可用集群
前情提要 整篇文章会非常的长…可以选择性阅读,另外,这篇文章是自己学习使用的,用于生产,还请三思和斟酌 静态 pod 的部署方式和二进制部署的方式是差不多的,区别在于 master 组件的管理方式是 kubectl 还是 systemctl有 kubeadm 工具,为什么还要用静态 pod 的方式部署?…...
穷举vs暴搜vs深搜vs回溯vs剪枝系列一>黄金矿工
目录 决策树:代码设计代码: 决策树: 代码设计 代码: class Solution {boolean[][] vis;int ret,m,n;public int getMaximumGold(int[][] grid) {m grid.length;n grid[0].length;vis new boolean[m][n]; for(int i 0; i <…...
SQL Server配置管理器无法连接到 WMI 提供程序
目录 第一步第二部 第一步 发现没有资源管理器 在文件夹找到管理器 打开发现报这个错误 配置管理器无法连接到 WMI 提供程序第二部 https://blog.csdn.net/thb369208315/article/details/126954074...
微信小程序获取openid和其他接口同时并发请求如何保证先获取到openid
在微信小程序中,如果你需要并发请求获取 openid 和其他接口的数据,并且希望确保先获取到 openid 之后再进行后续操作,可以考虑以下几种方法: 方法一:使用 Promise 链 1, 先请求 openid:使用 Promise 来请求 openid。 2, 在获取到 openid 后再请求其他接口。 function g…...
为AI聊天工具添加一个知识系统 之87 详细设计之28 Derivation 统一建模元模型 之1
文本要点 要点 Derivation 统一建模元模型 Derivation 统一建模元模型:意识原型的祖传代码,即支撑 程序框架的 符号学中的 自然和逻辑树。 这棵树的雏形中描述了三种建模工件:语用钩子,语法糖和语义胶水。 三种工件对应的三“…...
java进阶知识点
java回收机制 浅谈java中的反射 依赖注入的简单理解 通过接口的引用和构造方法的表达,将一些事情整好了反过来传给需要用到的地方~ 这样做得好处:做到了单一职责,并且提高了复用性,解耦了之后,任你如何实现…...
63.视频推荐的算法|Marscode AI刷题
1.题目 问题描述 西瓜视频正在开发一个新功能,旨在将访问量达到80百分位数以上的视频展示在首页的推荐列表中。实现一个程序,计算给定数据中的80百分位数。 例如:假设有一个包含从1到100的整数数组,80百分位数的值为80…...
19.[前端开发]Day19-王者荣项目耀实战(二)
01_(掌握)王者荣耀-main-banner展示实现 完整代码 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewpor…...
Leetcode面试高频题分类刷题总结
https://zhuanlan.zhihu.com/p/349940945 以下8个门类是面试中最常考的算法与数据结构知识点。 排序类(Sort): 基础知识:快速排序(Quick Sort), 归并排序(Merge Sort)的…...
JPA使用@EntityGraph立即加载关联实体
在JpaRepository接口中实现自定义查询的时候,必然会遇到一个问题,通过findBy等语句查询出来的结果通常情况下不会加载到关联的实体。例如我有一个Material类,其中有一个属性supplier使用了多对一关联到Supplier类,并开启懒加载&am…...
python多版本管理工具之pyenv
pyenv 是一个用于管理多个 Python 版本的工具,允许用户在同一台机器上轻松安装、切换和隔离不同版本的 Python 解释器。它特别适合需要同时处理多个项目的开发者(例如,不同项目依赖不同 Python 版本的情况)。以下是 pyenv 的详细指南: 本文基于Ubuntu 22.04版本进行安装,…...
107,【7】buuctf web [CISCN2019 华北赛区 Day2 Web1]Hack World
这次先不进入靶场 看到红框里面的话就想先看看uuid是啥 定义与概念 UUID 是 Universally Unique Identifier 的缩写,即通用唯一识别码。它是一种由数字和字母组成的 128 位标识符,在理论上可以保证在全球范围内的唯一性。UUID 的设计目的是让分布式系…...
9. k8s二进制集群之kube-controller-manager部署
同样在部署主机上创建证书请求文件(为之后的证书生成做准备)根据上面的证书文件创建证书(结果会在当前目录下产生kube-controller-manager证书)创建kube-controller-manager服务配置文件创建kube-controller-manager服务启动文件同步kube-controller-manager证书到对应mast…...
keil 单步调试技巧
一、常见错误分析 warningerror警告错误 不影响编译过程 能够输出Hex文件 无法完成编译 不输出Hex文件 注意的是,warning的信息是要去关注的。 下面的UNCALLED SEGMENT除外 二、单步调试配置 1、在keil中添加单片机型号 本文不详细介绍,如有需要可查看这篇文章:...
[leetcode]两数之和等于target
源代码 #include <iostream> #include <list> #include <iterator> // for std::prev using namespace std; int main() { int target 9; list<int> l{ 2, 3, 4, 6, 8 }; l.sort(); // 确保列表是排序的,因为双指针法要求输入是…...
Go语言的转义字符
文章目录 1. Go语言的转义字符(escapechar)2. 小结和提示 1. Go语言的转义字符(escapechar) 说明:常用的转义字符有如下: \t : 表示一个制表符,通常使用它可以排版\n :换行符\\ :一个\\" :一个"\r :一个回…...
低代码系统-产品架构案例介绍、蓝凌(十三)
蓝凌低代码系统,依旧是从下到上,从左至右的顺序。 技术平台h/iPaas 指低层使用了哪些技术,例如:微服务架构,MySql数据库。个人认为,如果是市场的主流,就没必要赘述了。 新一代门户 门户设计器&a…...
【大数据技术】搭建完全分布式高可用大数据集群(Hadoop+MapReduce+Yarn)
搭建完全分布式高可用大数据集群(Hadoop+MapReduce+Yarn) jdk-8u361-linux-x64.tarhadoop-3.3.6.tar.gz注:请在阅读本篇文章前,将以上资源下载下来。 写在前面 本文主要介绍搭建完全分布式高可用集群Hadoop+MapReduce+Yarn的详细步骤。 注意: 统一约定将软件安装包存放…...
Rapidjson 实战
Rapidjson 是一款 C 的 json 库. 支持处理 json 格式的文档. 其设计风格是头文件库, 包含头文件即可使用, 小巧轻便并且性能强悍. 本文结合样例来介绍 Rapidjson 一些常见的用法. 环境要求 有如何的几种方法可以将 Rapidjson 集成到您的项目中. Vcpkg安装: 使用 vcpkg instal…...
string类OJ练习题
目录 文章目录 前言 一、反转字符串 二、反转字符串 II 三、反转字符串中的单词 III 四、验证一个字符串是否是回文 五、字符串相加(大数加法) 六、字符串相乘(大数乘法) 七、把字符串转化为整数(atoi) 总结…...
Python进行模型优化与调参
在数据科学与机器学习领域,模型的优化与调参是提高模型性能的重要步骤之一。模型优化可以帮助提高模型的准确性和泛化能力,而合理的调参则能够充分发挥模型的潜力。这篇教程将重点介绍几种常用的模型优化与调参方法,特别是超参数调整和正则化技术的应用。这些技术能够有效地…...
Ollama+deepseek+Docker+Open WebUI实现与AI聊天
1、下载并安装Ollama 官方网址:Ollama 安装好后,在命令行输入, ollama --version 返回以下信息,则表明安装成功, 2、 下载AI大模型 这里以deepseek-r1:1.5b模型为例, 在命令行中,执行&…...
【PDF多区域识别】如何批量PDF指定多个区域识别改名,基于Windows自带的UWP的文字识别实现方案
海关在对进口货物进行查验时,需要核对报关单上的各项信息。对报关单 PDF 批量指定区域识别改名后,海关工作人员可以更高效地从文件名中获取关键信息,如货物来源地、申报价值等。例如文件名 “[原产国]_[申报价值].pdf”,有助于海关快速筛选重点查验对象,提高查验效率和监管…...
第一个Qt开发实例(一个Push Button按钮和两个Label)【包括如何在QtCreator中创建新工程、代码详解、编译、环境变量配置、测试程序运行等】
目录 Qt开发环境QtCreator的安装、配置在QtCreator中创建新工程在Forms→mainwindow.ui中拖曳出我们要的图形按钮查看拖曳出按钮后的代码为pushButton这个图形添加回调函数编译工程关闭开发板上QT的GUI(选做)禁止LCD黑屏(选做)设置Qt运行的环境变量运行Qt程序如何让程序在系统启…...