HTTP协议
目录
1 Fiddler工具
2 HTTP协议
2.1 HTTP请求和响应格式
2.2 URL
2.3 方法method
2.3.1 GET
2.3.2 POST
2.4 请求报头Header
2.5 请求正文body
2.6 http响应状态码
2.7 响应报头header
HTTP协议是应用层的协议,基于传输层的TCP协议来传输,数据是文本类型的,因为HTTP协议已经有多版本了,HTTP1.0、HTTP1.1、HTTP2.0均为TCP,HTTP3基于UDP实现,为了便于说明,这里以HTTP1.1为例。
1 Fiddler工具
要了解HTTP协议的格式,就需要抓包,Fiddler就是抓包工具,其工作原理如下:
Fiddler相当于一个中间“代理”,当浏览器发送HTTP请求时,首先会被Fiddler捕获,然后再发送给服务器。而服务器的响应也会先发给Fiddler,再由Fiddler发给浏览器。因此请求和响应都经过了Fiddler,就可以从Fiddler中获取HTTP请求和响应的内容了。
Fiddler为了便于用户查看请求和响应的内容,对HTTP报文进行一定的美化,如果想要查看原始的HTTP报文,就点击Raw,如上图所示。
注意:使用Fiddler会影响获取请求和响应的速度,但是该工具只是在开发中使用,等程序真正运行的时候并不会使用Fiddler,因此就不用在意这个细节。另外,Fiddler会和其他代理工具冲突,因此如果接收不到请求和响应,就关闭其他代理软件。
2 HTTP协议
2.1 HTTP请求和响应格式
HTTP请求的首行是包含三个部分:Method、URL和Version,Method是方法,URL是统一资源定位符(也就是网址),Version是使用的HTTP的版本号。
HTTP的报头Header包含多组键值对,键值对之间用换行符分隔。
HTTP的Body是请求正文,一般为空,但是常见的登录功能发送的请求包含正文(比如账号密码)。
注意:空行的作用是明确Header的结束边界,因为对于键值对的个数是不确定的。而HTTP基于TCP协议,TCP协议面向字节流,存在粘包问题,这个空行正是HTTP协议为了解决粘包问题的一种约定。
使用Fiddler抓包工具查看请求百度的HTML页面:
这是请求。
这是响应,观察响应空行以下的内容,发现这正是HTML页面的代码。
2.2 URL
URL即网址,常见包含以下部分(按URL部分从前往后的顺序):
协议方案名:URL是给哪个协议使用的,常见有http和https(加密版的http),URL不止可以给http和https使用,还可以给其他服务使用(jdbc:mysql)。
user:pass:登录信息,现在已经不使用这种方式了,因此常见URL并没有这个字段。
端口号:位于协议方案名和服务器地址之间,这里给省略了,URL中如果没有这个信息,就采用默认的端口号:http使用80端口、https使用443端口。
服务器地址:www.baidu.com,这里是域名,通过DNS解析获取服务器的IP地址。
带层次的文件路径:当前访问的页面资源在服务器的哪个文件路径中,上图/表示根目录,/index.html表示根目录下存在一个百度搜索的主页面,/s是百度搜索时的具体内容的页面。
查询字符串:?以后的内容,使用键值对表示,键值对之间用&分隔,键和值之间用=分隔。而键值对的含义不同服务器不同,只有相关的开发人员才可能知道。比如上述的wd=Java很有可能就是搜索词。
片段标识符(锚点):位于查询字符串后,#表示,用于页面内内容的跳转。
注意:在查询字符串中,有时会遇到一些看不懂的内容,比如搜索C++时,查询字符串包含wd=C%2B%2B,这是URLencode,%2B是+编码后的结果。像/和?之类的符号已经有特殊用途,因此查询字符串中就不能随意包含这些字符,因此需要URLencode。具体的编码规则:将需要转码的字符转为16进制,然后从右到左,取4位(不足4位直接处理),每2位做一位,前面加上%,编码成%XY格式。而URLdecode就是URLencode的逆过程,这里不再赘述。
2.3 方法method
方法是http请求的首行第一个部分,表示这次请求的目的是什么,常见有如下:
方法 | 作用 | 支持的HTTP协议版本 |
GET | 获取资源 | 1.0、1.1 |
POST | 传输实体主体 | 1.0、1.1 |
PUT | 传输文件 | 1.0、1.1 |
HEAD | 获得报文首播 | 1.0、1.1 |
DELETE | 删除文件 | 1.0、1.1 |
OPTIONS | 询问支持的方法 | 1.1 |
TRACE | 追踪路径 | 1.1 |
CONNECT | 要求用隧道协议连接代理 | 1.1 |
LINK | 建立和资源之间的联系 | 1.0 |
UNLINK | 断开连接关系 | 1.0 |
这里主要介绍最常用的两种方法GET和POST。
2.3.1 GET
GET方法原始的做法是用来获取服务器的某个资源,比如网页。但是现在其语义更加丰富,GET用来做数据的增删改查都可以,具体如何使用看需求。
(1)触发GET请求的使用场景:
- 地址栏输入URL、点击链接。
- HTML标签:a标签、img标签、link标签和script标签等等。
- form表单。
- ajax请求。
(2)GET请求的特点:
- 首行第一部分为GET。
- URL的查询字符串可以为空或不空。
- body部分通常为空(习惯用法,也可以不为空)。
注意:GET请求的URL没有长度限制!
2.3.2 POST
POST方法的初始作用是提交数据给服务器。但是也可以不遵守,使用POST方法进行增删改查。
(1)POST请求的典型场景:
- 登录。
- 上传文件。
(2)POST请求的特点:
- 首行第一部分为POST。
- URL的查询字符串通常为空。
- body部分通常为不空。
注意:向服务器提交数据可以放在查询字符串中,也可以放在body中。通常GET请求把提交数据放在查询字符串中,而POST请求通常放在body中,这是习惯用法(也可以不遵守)。GET和POST的区别?两者没有本质区别(使用场景可以相互替代),但是存在使用习惯的区别:GET主要用来获取数据,POST用来提交数据;GET主要通过查询字符串传递数据,POST通过body传递数据;GET是幂等的,POST是不幂等的(幂等指多次相同的输入,得到的结果都相同);GET一般可以被缓存,POST一般不可以被缓存(继承幂等性,因为多次获取的结果一样所以可以被缓存,但是也可以打破习惯,比如GET请求查询的网页如果有实时信息,就不具有幂等性,也不能被缓存了)。
2.4 请求报头Header
这里介绍几个常见的键值对含义:
Host:表示服务器主机的地址和端口。
Content-Length:表示body中的数据长度(因此常见于POST),由于http协议基于TCP传输,为了防止粘包问题,如果有body,Content-Length就指明了数据报的边界;如果没有body,空行也就指明边界。
Content-Type:表示请求的body中的数据格式,常见格式有:application/x-www-form-urlencoded:form表单提交的数据格式(类似查询字符串格式)、multipart/form-data:form表单提交的数据格式(在form标签中加上enctyped="multipart/form-data".),通常用于提交图片/文件和application/json:数据为json格式等等。
User-Agent:表示浏览器/操作系统的属性(有操作系统、浏览器版本等等)。
Referer:表示这个页面是从哪个页面跳转过来的,不一定有。注意:如果直接在浏览器中输入URL,或直接通过收藏夹访问页面时是没有Referer的。
Cookie:是浏览器的一种存储数据的机制,存储格式是键值对。由于服务器一般不允许浏览器直接访问本地磁盘,因此浏览器需要存储数据就要用到Cookie,相当于在用户磁盘划分了一个小空间,专门用来存储Cookie。
注意:登录流程,用Cookie存储用户的登录信息,当用户第一次登录时,返回的响应就会携带Set-Cookie让浏览器存储登录信息,下次用户访问该网站内的其他页面时,就会在携带Cookie一起发送给服务器,服务器判断该用户已经登录,就直接返回页面,防止用户登录一次后重复登录。Cookie常常和Session搭配使用(也可以单独出现),Session是存储在服务器端的,后续会详细介绍。
2.5 请求正文body
请求的正文body有三种常见格式:
(1)application/x-www-form-urlencoded
(2)multipart/form-data
(3)application/json
这几种格式在Content-Type已经介绍,这里不再赘述。
2.6 http响应状态码
http响应大部分和http请求格式类似,这里仅介绍重要的状态码部分:
状态码 | 类别 | 含义 |
1XX | Informational(信息性状态码) | 接收的请求正在处理 |
2XX | Success(成功状态码) | 请求正常处理完毕 |
3XX | Redirection(重定向状态码) | 需要进行附加操作以完成请求 |
4XX | Client Error(客户端错误状态码) | 服务器无法处理请求 |
5XX | Server Error(服务器错误状态码) | 服务器处理请求出错 |
200 OK:成功。
404 Not Found:没有找到资源。
403 Forbidden:访问被拒绝,通常需要用户具有一定的权限才能访问。
405 Method Not Allowed:请求的方法不支持。
500 Internal Server Error:服务器出现内部错误(服务器崩溃、出现异常)。
504 Gateway Timeout:超时,请求很长时间没有得到响应,浏览器就会超时。
302 Move temporarily:临时重定向,当用户访问时某个页面可能被重定向到新页面(登录成功的跳转),header会包含Location字段,表示要跳转到哪个页面。
301 Moved Permanently:永久重定向,永久修改某个页面的重定向跳转结果。
2.7 响应报头header
响应报头header的结构也类似请求报头,但是对于Content-Type的取值区别很大:
(1)text/html:body数据格式是HTML。
(2)text/css:body数据格式是CSS。
(3)application/javascript:body数据格式是JavaScript。
(4)application/json:body数据格式是JSON。
下篇文章:
相关文章:
HTTP协议
目录 1 Fiddler工具 2 HTTP协议 2.1 HTTP请求和响应格式 2.2 URL 2.3 方法method 2.3.1 GET 2.3.2 POST 2.4 请求报头Header 2.5 请求正文body 2.6 http响应状态码 2.7 响应报头header HTTP协议是应用层的协议,基于传输层的TCP协议来传输,数据…...
拓扑排序 —— 2. 力扣刷题207. 课程表
题目链接:https://leetcode.cn/problems/course-schedule/description/ 题目难度:中等 相关标签:拓扑排序 / 广度优先搜搜 BFS / 深度优先搜索 DFS 2.1 问题与分析 2.1.1 原题截图 2.1.2 题目分析 首先,理解题目后必须马上意识到…...
寻找峰值 --- 二分查找
目录 一:题目 二:算法原理 三:代码实现 一:题目 题目链接:162. 寻找峰值 - 力扣(LeetCode) 二:算法原理 三:代码实现 class Solution { public:int findPeakElemen…...
SAP系统客户可回收包材库存管理
问题:客户可回收包材库存管理 现象:回收瓶无库存管理,在库数量以及在客户的库存数量没有统计,管理混乱。 解决方法: 客户可回收包装材料在SAP有标准的解决方案,在集团尚未启用该业务,首先…...
C++标识符:检查是否和保留字冲突
1. 基础知识 最基本的要求: 字母、数字、下划线组成, 并且不能是数字开头。 禁忌1: C 关键字不能用做标识符。 它们是: alignas alignof asm auto bool break case catch char char16_t char32_t class const constexpr const_…...
【Java多线程】告别线程混乱!深度解析Java多线程4大实现方式(附实战案例)
一、继承Thread类 实现步骤: 1.继承Thread类 2.重写run()方法 3.创建线程对象并调用start()方法 示例: class MyThread extends Thread {Overridepublic void run() {for (int i 0; i < 5; i) {System.out.println(Thread.currentThread().getNam…...
Linux安装yum和python
一、安装yum(CentOS) 查看yum版本 yum --version 如果未安装,执行以下部分: 1. 确保你的系统中已经安装了epel仓库,如果没有安装可以通过以下命令安装: sudo yum install epel-release 2.yum安装 – CentOS/RHEL系统&#…...
【数据结构】HashMap源码 —— 简单介绍
HashMap源码介绍 下面并非完整的源码,主要简单了解其流程。 1. 基本成员变量 哈希桶/开散列,链地址法/开链法是由:数组 链表(单链表) 红黑树(当数组长度>64 && 链表长度>8以后,链表变成红黑树…...
149页研读——华为基于IPD全过程研发质量管理【附全文阅读】
本文介绍了IPD(集成产品开发)的全过程研发质量管理,强调了以客户需求为导向,通过跨部门协同、资源整合、快速响应等方式提高研发效率和成功率。文章详细阐述了IPD研发管理体系的精要,包括其核心思想、优势、框架以及核心理念。 其中,跨领域平台与技术研发、端到端流程与项…...
深入理解 v-for 指令及其使用方法
在 Vue.js 中,v-for 是用于渲染列表的核心指令,它允许你通过循环渲染数据源中的每一项。通过 v-for,你可以轻松地将数组、对象或其他可迭代的数据渲染成 HTML 元素。本文将详细介绍 v-for 的基本用法、常见的应用场景、最佳实践及性能优化&am…...
swift菜鸟教程24-25(可选链,自动引用计数)
一个朴实无华的目录 今日学习内容:1.Swift 可选链1.1定义1.2通过可选链调用方法1.3使用可选链调用下标脚本1.4通过可选链接调用来访问下标1.4访问可选类型的下标 2.Swift 自动引用计数(ARC)2.1实例之间的循环强引用会造成内存泄露2.2弱引用&a…...
使用 Visual Studio 2022 (VS2022) 编译 FreeCAD 1.0.0 的详细教程
一、环境准备 官方教程:在 Windows 上编译 - FreeCAD Documentation Windows 10/11(推荐) git vs2022 cmake 3.26.4 Doxygen1.12 二、获取源码与依赖 版本关系 打开Git Bash或CMD,执行以下命令 git clone --recurse-sub…...
机械臂只有位置信息是否可以进行手眼标定?
平常我在做手眼标定时,一般都是通过OpenCV的cv::calibrateHandEye函数进行求解,需要输入多组不同的机械臂位姿。今天遇到了一款舵机机器人,只能获取位置,得不到姿态信息,想着那就把姿态都设为0,结果求不出来…...
Unity入门
文章目录 Unity脚本基础大基础生命周期函数Inspector窗口显示常用特性辅助特性 MnonBehaviour基类成员变量成员方法 组件GameObject成员变量gameObject静态方法成员方法 组件Time静态成员变量 组件TransformVector3结构体基础基本概念常用向量表示常用方法 位置与位移位置posit…...
《汽车制造技术基础》第一次作业
作业内容 查阅相关资料,谈谈对汽车制造技术的发展的理解。 可以是关于汽车的先进制造技术 或 汽车先进制造技术 与 制造理念的发展趋势 或 汽车先进制造技术对环境与可持续发展的影响等。 以下从技术突破、制造理念转型及环境影响三个维度展开对汽车制造技…...
烟花爆竹储存作业安全要求
烟花爆竹储存作业证是从事相关作业的法定凭证,旨在确保操作人员具备专业知识和安全技能,防止因违规操作引发火灾、爆炸等事故。根据《烟花爆竹安全管理条例》及相关法规,未取得作业证的人员不得从事烟花爆竹储存、搬运、管理等作业。 仓库选址…...
Flask+Plotly结合动态加载图形页面实践
1. DeepSeek帮我实践 1.1. 我的提问既设计方案 原有如下主页:dashboard.html,现增加“预测模型学习”,对感知机神经网络描述如下: 1、输入与输出为固定值,例如输入层215,输出层48; 2、模型为回归神经网络; 3、中层是可动态调整的,例如定义如下:第二层,200,第三层…...
leetcode每日一题:统计好整数的数目
题目 给你两个 正 整数 n 和 k 。 如果一个整数 x 满足以下条件,那么它被称为 k 回文 整数 。 x 是一个 回文整数 。 x 能被 k 整除。 如果一个整数的数位重新排列后能得到一个 k 回文整数 ,那么我们称这个整数为 好 整数。比方说,k 2 …...
《2025蓝桥杯C++B组:D:产值调整》
**作者的个人gitee** 作者的算法讲解主页▶️ 每日一言:“泪眼问花花不语,乱红飞过秋千去🌸🌸” 题目 二.解题策略 本题比较简单,我的思路是写三个函数分别计算黄金白银铜一次新产值,通过k次循环即可获…...
【模块化拆解与多视角信息1】基础信息:隐藏的筛选规则——那些简历上没说出口的暗号
写在最前 作为一个中古程序猿,我有很多自己想做的事情,比如埋头苦干手搓一个低代码数据库设计平台(目前只针对写java的朋友),比如很喜欢帮身边的朋友看看简历,讲讲面试技巧,毕竟工作这么多年,也做到过高管,有很多面人经历,意见还算有用,大家基本都能拿到想要的offe…...
当Browser Use遇见A2A:浏览器自动化与智能体协作的“冰与火之歌“
——一场正在改写数字文明的技术奇遇 第一章 浏览器革命:从"手动挡"到"自动驾驶" 1.1 传统自动化工具的"中年危机" 还记得2023年那个抓狂的凌晨吗?你蹲守演唱会门票时,Selenium脚本因为验证码识别失败第108次…...
Python:开启自动化办公与游戏开发的无限可能
重要的事情放在前面 Python自动化办公和游戏 Python:开启自动化办公与游戏开发的无限可能 在数字化时代的浪潮中,Python以其强大的功能和简洁的语法,成为了众多开发者手中的得力工具,尤其在自动化办公与游戏开发领域࿰…...
腾讯后台开发 一面
一、手撕 合并升序链表 合并两个排序的链表_牛客题霸_牛客网 顺时针翻转矩阵 顺时针旋转矩阵_牛客题霸_牛客网 二、八股 1、静态变量和实例变量 public class House {public static String buildDate "2024-10-27"; // 静态变量public String color; // 实…...
基于生成对抗网络(GAN)的手写数字生成实践
基于生成对抗网络(GAN)的手写数字生成实践 一、图像生成的技术演进 在人工智能领域,图像生成技术经历了从传统算法到深度学习的革命性发展。其中,生成对抗网络(Generative Adversarial Networks, GANs)作…...
网络互连与互联网
1.在路由表中找不到目标网络时使用默认路由,默认路由通常指本地网关的地址。 2.OSPF最主要的特征是使用分布式链路状态协议,而RIP使用的是距离向量协议。 3.OSPF使用链路状态公告LSA扩散路由信息 4.内部网关路由协议IGRP是一种动态距离矢量路由协议&a…...
大模型常见面试题
大模型常见面试题 大模型相关的面试问题通常涉及模型的原理、应用、优化以及面试者对于该领域的理解和经验。以下是一些常见的 大模型面试问题以及建议的回答方式: 请简述什么是大模型,以及它与传统模型的主要区别是什么? 回答:…...
python高级编程一(生成器与高级编程)
@TOC 生成器 生成器使用 通过列表⽣成式,我们可以直接创建⼀个列表。但是,受到内存限制,列表容量肯定是有限的。⽽且,创建⼀个包含100万个元素的列表,不仅占⽤很⼤的存储空间,如果我们仅仅需要访问前⾯⼏个元素,那后⾯绝⼤多数元素占 ⽤的空间都⽩⽩浪费了。所以,如果…...
Linux线程属性与多线程开发:API详解与实战代码解析
Linux 线程的属性 线程池 多线程的创建 线程的属性 引入 我们设想一个场景,使用pthread_detach时,发现线程早就已经结束了,这时候pthread_detach还能正常发挥清理线程的 独有空间 的作用吗? 答案是可以的,但是这难…...
Inkscape安装教程
Inkscape 是一款开源的矢量图形编辑软件,功能强大且免费,适用于 Windows、macOS 和 Linux 系统。以下是在不同操作系统上安装 Inkscape 的详细教程: 一、Windows 系统安装 Inkscape 1. 下载安装包 打开浏览器,访问 Inkscape 官方…...
危化品安全员岗位注意事项有哪些?
危化品安全员肩负着保障危化品生产、储存、运输和使用等环节安全的重要职责,其岗位注意事项涉及多个方面,以下是一些主要内容: 法规标准与制度执行 必须熟悉并严格遵守国家和地方有关危化品安全管理的法律法规、标准规范,如《危险…...
1、从零搭建魔法工坊:React 19 新手村生存指南
一、开篇:新世界的入场券 "你好,年轻的魔法学徒!欢迎来到React魔法世界。我是你的向导赫敏韦斯莱,今天我们将用React 19这根全新魔杖,搭建属于你的第一座魔法工坊。" ——以对话形式开场,消除技…...
链表代码实现(C++)
数据结构第三篇 一、几个注意点 1、同时持有头尾结点的引用 双链表一般同时持有头尾结点的引用 因为在工程应用中,通常在容器尾插入元素,双链表持有尾部节点的引用,就可以在O(1)时间复杂度的情况下在尾部添加元素。…...
【学习笔记】两个类之间的数据交互方式
在面向对象编程中,两个类之间的数据交互可以通过以下几种方式实现,具体选择取决于需求和设计模式: 1. 通过方法调用 一个类通过调用另一个类的公共方法来获取或传递数据。这是最常见的方式,符合封装原则。 class ClassA:def __…...
【Docker基础】深入解析 Docker 存储卷:管理、绑定与实战应用
文章目录 一、什么是存储卷二、为什么需要存储卷三、存储卷分类四、管理卷 Volume方式一:Volume 命令操作方式二:使用 -v 或 --mount 参数指定卷方式三:Dockerfile 匿名卷 五、操作案例Docker 命令创建管理卷Docker -v 创建管理卷Docker 卷生…...
Python生成exe
其中的 -w 参数是 PyInstaller 用于窗口模式(Windowed mode),它会关闭命令行窗口的输出,这通常用于 图形界面程序(GUI),比如使用 PyQt6, Tkinter, PySide6 等。 所以: 如果你在没有…...
SpringBoot原理
配置优先级 SpringBoot项目当中支持的三类配置文件: 在SpringBoot项目当中,我们要想配置一个属性,可以通过这三种方式当中的任意一种来配置都可以,那么如果项目中同时存在这三种配置文件,且都配置了同一个属性&#x…...
Google 官方提示工程 (Prompt Engineering)白皮书 总结
《大语言模型的提示工程:从基础到最佳实践》 总结 本文围绕大语言模型的提示工程展开,介绍其是设计高质量提示引导 LLM 产生准确输出的过程。探讨了 LLM 输出配置如输出长度、温度、top-K 和 top-P 等设置及其相互影响,阐述了零样本、少样本…...
Python——numpy测试题目
题目: 生成一个2行3列随机整数二维数组a使用Numpy方法对(1)中数组a进行整体求积使用Numpy方法对(1)中数组a进行求每列最大值索引定义一个NumPy一维数组 b,元素为 1 到 10 的整数获取(4&#x…...
【SLAM】将realsense-viewer录制的rosbag视频导出成图片序列(RealSense D435)
本文介绍了如何将realsense-viewer录制的rosbag格式的视频导出成图片序列,方便合并成mp4视频或插入到论文中。 本文首发于❄慕雪的寒舍 说明 Intel提供的realsense-viewer软件录制的视频都是rosbag格式的,为了编写论文,需要从录制的视频中截…...
Unity6国际版下载
Unity6国际版下载下载地址 Hub下载地址:https://www.nounitycn.top/unityhub 先下载unity6启动器(下载速度很快),在去下载unity6000版本(下载速度慢) 下载速度很慢的话,有条件可以找梯子科学上网…...
2025认证杯挑战赛B题【 谣言在社交网络上的传播 】原创论文讲解(含完整python代码)
大家好呀,从发布赛题一直到现在,总算完成了认证杯数学中国数学建模网络挑战赛第一阶段B题目谣言在社交网络上的传播完整的成品论文。 给大家看一下目录吧: 目录 摘 要: 一、问题重述 二. 问题分析 2.1问题一 2.…...
后台进程管理之pstree 和 job
1. pstree 命令 功能 以树状结构显示进程间的父子关系,直观展示进程的层次结构。 常用选项 选项说明-p显示进程 PID-a显示完整命令行(包括参数)-u显示进程所属用户-n按 PID 排序(默认按进程名)-h高亮当前进程及其祖…...
波束形成(BF)从算法仿真到工程源码实现-第三节-延迟求和波束形成(DSB)
一、概述 本节我们讨论延迟求和波束形成算法,包括原理分析及代码实现。 更多资料和代码可以进入 https://t.zsxq.com/qgmoN ,同时欢迎大家提出宝贵的建议,以共同探讨学习。 二、原理分析 2.1 原理: 首先对不同麦克风信号之间的相…...
deepseek使用记录——拉美文学的且战且败和且败且战
一 拉美文学,且战且败,且败且战,有哪些比较深刻的文学作品,对当下的年轻人有何启示。 拉丁美洲文学以其对历史、政治、社会现实的深刻反思和独特的魔幻现实主义风格闻名于世。这些作品既记录了拉美大陆在殖民、独裁、全球化浪潮中…...
LeetCode 解题思路 37(Hot 100)
解题思路: 初始化: 初始化最大举行 max 和栈 stack。左右补零: 考虑柱子递增的边界情况, 初始化填充柱状图 newHeights。遍历处理: 对于每一根遍历到的柱子 newHeights[i],若柱子高度小于栈口索引…...
lvs+keepalived+dns高可用
1.配置dns相关服务 1.1修改ip地址主机名 dns-master: hostnamectl hostname lvs-master nmcli c modify ens160 ipv4.method manual ipv4.addresses 10.10.10.107/24 ipv4.gateway 10.10.10.2 ipv4.dns 223.5.5.5 connection.autoconnect yes nmcli c up ens160dns-salve: h…...
计算齿轮故障频率|平行轴|行星轮齿轮
一、平行轴齿轮故障频率 关键参数定义 Z:齿轮齿数 fs:轴旋转频率(Hz) N:啮合齿轮齿数(配对齿轮) 特征频率公式 软件页面截图 二、行星齿轮故障频率 系统组成参数 太阳轮齿数 齿圈齿数 …...
【技术派部署篇】云服务器部署技术派
1 环境搭建 1.1 JDK安装 # ubuntu sudo apt update # 更新apt apt install openjdk-8-jdk # 安装JDK安装完毕之后,执行 java -version 命令进行验证: 1.2 Maven安装 cd ~ mkdir soft cd soft wget https://dlcdn.apache.org/maven/maven-3/3.8.8/bina…...
Rasa中endpoints.yml文件信息详细解释
endpoints.yml 是 Rasa 项目中用于配置各类服务接口(endpoints)的文件,它告诉 Rasa: 去哪里加载模型自定义动作在哪个服务运行对话历史存储在哪(tracker store)是否要把事件推送到某个消息队列中ÿ…...
AI代理是大模型实现可扩展智能自动化的关键
AI 代理框架:实现可扩展智能自动化的关键 https://www.lyzr.ai/ 每个人都在谈论 AI 代理,例如 Sam Altman、Satya Nadella、Andrew Ng 和 Sundar Pichai 等行业领袖。 但这究竟是为什么呢? 因为这就是当今软件发展的方向,也是企…...