IT | 词汇科普手册Ⅱ
目录
1.报文(Message)
2.Token(令牌)
Token vs. Cookie
Token vs. Key
"碰一碰"支付
3.NFC
4.Nginx
5.JSON
6.前置机
前置机vs.Nginx反向代理
以PDA、WMS举例前置机场景
7.RabbitMQ
核心功能
1.报文(Message)
报文(Message)是系统或组件之间交换的数据单元,通常遵循特定的格式和协议。
报文是网络中传输的数据块,包含控制信息(如协议头)和有效载荷(实际数据)。
常见类型:
- 请求报文:客户端向服务器发送的请求(如HTTP请求)。
- 响应报文:服务器返回的应答(如HTTP响应)。
- 协议报文:如TCP/IP协议中的数据包、DNS查询报文等。
报文的核心作用
- 标准化通信:确保发送方和接收方能正确解析数据。
- 可靠性:通过状态码、校验和等机制保证数据完整性。
- 效率:分块传输、压缩等优化手段(如HTTP的
Transfer-Encoding: chunked
)。
2.Token(令牌)
Token vs. Cookie
特性 | Token | Cookie |
---|---|---|
本质 | 一段签名的数据(如*JWT),包含用户信息。 *JSON Web Token | 由服务器通过HTTP头(Set-Cookie )发送到浏览器的小型文本文件。 |
存储位置 | 客户端自由存储(LocalStorage、内存等)。 | 由浏览器自动管理,存储在用户设备中。 |
依赖关系 | 无状态(不依赖浏览器或HTTP协议)。 | 依赖浏览器和HTTP协议(需自动携带Cookie头)。 |
代码示例 | ![]() | ![]() |
-
用Token:需要跨域、无状态、移动端支持,或API优先架构。
-
用Cookie:依赖浏览器会话、简化开发(如传统Web应用)。
典型使用场景
Token:
- 前后端分离架构(如React/Vue + API)。
- 移动端APP与后端通信。
- 第三方API授权(OAuth 2.0)。
Cookie:
- 传统服务端渲染(如PHP、Ruby on Rails)。
- 需要浏览器自动管理会话的场景(如电商网站登录)。
关键区别:
对比维度 | Token | Cookie |
---|---|---|
跨域支持 | 天然支持跨域(CORS配置即可)。 | 受同源策略限制(需配置SameSite 、Domain 等属性)。 |
安全性 | 更安全(可防CSRF,需防XSS)。 | 需防范CSRF(如加SameSite 、Token双重验证)。 |
移动端/API友好性 | 适合移动端和非浏览器场景(如APP)。 | 主要针对浏览器场景。 |
存储控制 | 客户端完全控制存储方式。 | 由浏览器自动管理,无法直接控制过期时间(需服务器设置)。 |
状态管理 | 无状态(Token自包含用户信息)。 | 通常需服务器维护会话状态(如Session ID)。 |
Token vs. Key
对比项 | Token(令牌) | Key(密钥/钥匙) |
---|---|---|
主要用途 | 临时身份凭证(如登录后的通行证)。 | 更通用,可能是加密密钥、API密钥、密码等。 |
时效性 | 通常有过期时间(如JWT 24小时后失效)。 | 可能长期有效(如SSH密钥)。 |
安全性 | 可被设计为一次性或短期有效。 | 长期密钥泄露风险更高(如密码明文存储)。 |
技术实现 | 往往包含用户信息(如JWT)。 | 可能只是一串随机字符(如API Key)。 |
"碰一碰"支付
“碰一碰”支付(如NFC或二维码)的核心是 动态令牌(Token),流程类似:
-
生成临时Token:
支付宝APP生成一个限时有效的加密Token(如一次性的付款码或NFC信号),包含你的身份和交易信息。
(这就像游乐园手环,但每次支付换一个新“手环”)。 -
近场传输:
通过NFC或二维码将Token传递给收款设备(如POS机)。 -
服务器验证:
收款设备将Token传给支付宝服务器,服务器解密后确认交易合法性,完成扣款。
3.NFC
NFC(Near Field Communication,近场通信) 是一种让两台设备在极短距离内(通常3-5厘米)快速无线传输数据的技术。(vs.纯天然果汁NFC(Not From Concentrate)“非浓缩还原”)
技术原理(简化版)
- 电磁感应:读卡器(如POS机)产生磁场,给NFC标签(如公交卡)供电并通信。
- 被动模式:卡片无需电池(像“电子标签”)。
- 主动模式:两部手机互相通信(如Android Beam)。
场景 | 怎么用NFC? |
---|---|
支付宝/微信“碰一碰”支付 | 手机贴近POS机,“嘀”一声完成付款。 |
公交卡/地铁卡 | 手机或卡片靠近闸机,直接刷卡通行。 |
门禁卡/电子钥匙 | 手机模拟门禁卡,贴一下就能开门。 |
文件传输 | 两部手机背对背一碰传照片(如安卓Beam)。 |
- 距离极短:小偷没法隔空偷信号(不像Wi-Fi/蓝牙可能被远程拦截)。
- 动态加密:比如支付时生成的Token每次不同,截获了也无法复用。
- 需手动触发:必须主动贴近,避免误操作。
特性 | NFC | 蓝牙/Wi-Fi |
---|---|---|
距离 | 3-5厘米(防偷窥)。 | 几米到几十米(可能被远程攻击)。 |
速度 | 慢(适合小数据)。 | 快(适合传大文件)。 |
配对 | 不用配对,一碰即连。 | 需手动配对或输入密码。 |
耗电 | 几乎不耗电。 | 耗电较高。 |
4.Nginx
Nginx(发音为“engine X”)是一款高性能的开源Web服务器,同时也可作为反向代理、负载均衡器和HTTP缓存使用。
优势 | 说明 |
---|---|
高性能 | 占用内存少,能同时处理10万+并发连接(比传统服务器如Apache更高效)。 |
反向代理 | 隐藏真实服务器,提升安全性(像“中介”帮你转发请求)。 |
负载均衡 | 把用户请求分发给多台服务器,避免某一台崩溃(像餐厅多个厨师分担压力)。 |
热部署 | 更新配置无需重启服务,业务不中断。 |
5.JSON
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,用来在不同系统之间传递和存储数据。它的核心特点是易读、易写、易解析。
本质:一种纯文本的“数据描述语言”,用简单的键值对(key: value
)来组织数据。
设计初衷:替代复杂的XML,让数据更简洁、更适合网络传输。
常见用途:
- 前后端API通信(比如前端从后端获取用户数据)。
- 配置文件(比如VSCode的设置文件
.json
)。 - 存储简单数据库(如NoSQL数据库MongoDB)。
JSON就是“数据界的普通话”,用简单的文本描述结构化数据,让不同系统能轻松互相理解。
(如果你网购时看到“加载中…”,大概率是前端正在解析后端发来的JSON数据 📦)
6.前置机
前置机是IT系统中一种常见的中间层设备或服务,主要用于隔离、转发、预处理客户端与后端核心系统之间的数据交互。
角色定位:像银行柜台前的“大堂经理”
- 客户(外部请求)不直接接触柜员(核心系统),先由大堂经理(前置机)核对需求、分流任务。
- 核心作用:保护核心系统 + 提高效率。
应用场景:
场景 | 前置机的作用 | 举例 |
---|---|---|
金融支付系统 | 接收POS机/扫码支付请求,验签后转发给银行核心系统。 | 超市刷卡时,交易先经过银联前置机。 |
医院信息系统(HIS) | 对接医保平台,预处理医保结算数据。 | 患者医保报销时,数据先通过医院前置机审核。 |
政务系统 | 隔离外部互联网和内部政务网,过滤非法请求。 | 市民网上办事,请求先到政务前置机安全检查。 |
前置机vs.Nginx反向代理
对比项 | 前置机 | Nginx反向代理 |
---|---|---|
定位 | 业务逻辑处理(如加密、报文转换)。 | 单纯流量转发和负载均衡。 |
部署位置 | 更靠近核心系统(内网)。 | 通常部署在DMZ区(内外网交界)。 |
复杂度 | 需定制开发业务逻辑。 | 通用配置,开箱即用。 |
以PDA、WMS举例前置机场景
7.RabbitMQ
RabbitMQ 是一款开源的消息队列(Message Queue)中间件,用最直白的比喻来说,它就像现实世界中的“快递站”,专门解决不同系统或服务之间的异步通信和数据传递问题。
核心功能
-
接收、存储、转发消息:
比如系统A需要通知系统B处理任务,但B暂时忙不过来,RabbitMQ会暂存消息,等B准备好再递送。
类比:快递站代收包裹,等你有空时再派送给你。 -
解耦系统:
发送方(生产者)和接收方(消费者)无需知道对方的存在,通过RabbitMQ间接通信。
类比:你网购时,卖家(生产者)和快递公司(RabbitMQ)打交道,你(消费者)只和快递员沟通。
相关文章:

IT | 词汇科普手册Ⅱ
目录 1.报文(Message) 2.Token(令牌) Token vs. Cookie Token vs. Key "碰一碰"支付 3.NFC 4.Nginx 5.JSON 6.前置机 前置机vs.Nginx反向代理 以PDA、WMS举例前置机场景 7.RabbitMQ 核心功能 1.报文(Message) 报文(Message)是系统或组件之…...

【 java 基础问题 第一篇 】
目录 1.概念 1.1.java的特定有哪些? 1.2.java有哪些优势哪些劣势? 1.3.java为什么可以跨平台? 1.4JVM,JDK,JRE它们有什么区别? 1.5.编译型语言与解释型语言的区别? 2.数据类型 2.1.long与int类型可以互转吗&…...
以前端的角度理解 Kubernetes(K8s)
作为一名前端开发者,我们每天都在与 React、Vue、Webpack 等工具打交道,而 Kubernetes(K8s)听起来更像是后端或运维的“专属领域”。但实际上,K8s 的核心思想和前端开发中的某些模式高度相似。那么咱们用熟悉的类比帮助…...

自用git记录
像重复做自己在网上找的练习题,这种类型的git仓库管理,一般会用到以下命令: git revert a1b2c3 很复杂的git历史变成简单git历史 能用git rebase -i HEAD~5^这种命令解决,就最好(IDEA还带GUI,很方便&…...
pyhton基础【2】基本语法
一. 注释 单行注释 以#开头,#右边的所有的内容当做说明,起辅助说明作用 # 我是一个单行注释 print(Hello) 多行注释 """ 在三引号中的注释被称之为多行注释 可以写很多行的功能说明 """ 二. 交互模式 终端输入代码…...
python数据结构-列表详解
Python中的列表(List)是一种序列类型的数据结构,它支持元素的动态添加和删除,可以容纳任意类型的数据,包括数字、字符串、甚至是其他列表或其他复杂数据结构。列表因其灵活性和广泛的应用场景,成为Python中最常用的数据结构之一。…...

本地环境下 前端突然端口占用问题 针对vscode
1.问题背景 本地运行前端代码,虚拟机中使用nginx反向代理。两者都使用vscode进行开发。后端使用vscode远程连接。在前端发起一次接口请求后,后端会产生新的监听端口,出现如下图的提示情况。随后前端刷新,甚至无法正常显示界面。 …...
flutter 项目调试、flutter run --debug调试模式 devtools界面说明
Flutter DevTools 网页界面说明 1. 顶部导航栏 Inspector:查看和调试 Widget 树,实时定位 UI 问题。Performance-- 性能分析面板,查看帧率、CPU 和 GPU 使用情况,识别卡顿和性能瓶颈。Memory-- 内存使用和对象分配分析ÿ…...
在局域网(LAN)中查看设备的 IP 地址
在局域网(LAN)中查看设备的 IP 地址,可以使用以下几种方法: 方法 1:使用 ipconfig(Windows) 1. 打开 CMD: 按 Win R,输入 cmd,回车。 2. 输入命令&#…...
Axure 基本用法学习笔记
一、元件操作基础 1. 可见性控制 隐藏/显示:可以设置元件的可见性,使元件在特定条件下隐藏或可见 应用场景:创建动态交互效果,如点击按钮显示隐藏内容 2. 层级管理 层级概念:元件有上下层关系,上层元件…...
使用 Hyperlane 实现 WebSocket广播
使用 Hyperlane 实现 WebSocket广播 hyperlane 框架原生支持 WebSocket 协议,开发者无需关心协议升级过程,即可通过统一接口处理 WebSocket 请求。本文将介绍如何使用 hyperlane 实现服务端的单点发送与广播发送功能,以及如何配套实现一个简…...
SQL每日一题(5)
前言:五更!五更琉璃!不对!是,五更佩可! 原始数据: new_hires reasonother_column1other_column2校园招聘信息 11社会招聘信息 22内部推荐信息 33猎头推荐信息 44校园招聘信息 55社会招聘信息…...
git提交通用规范
提交类型 类型说明feat新增功能或特性fix修复Bugdocs文档更新(README、CHANGELOG、注释等)style代码样式调整(空格、分号、格式等,不改变逻辑)refactor代码重构(既非新增功能,也非修复Bug的代码…...

C++ - 仿 RabbitMQ 实现消息队列(3)(详解使用muduo库)
C - 仿 RabbitMQ 实现消息队列(3)(详解使用muduo库) muduo库的基层原理核心概念总结:通俗例子:餐厅模型优势体现典型场景 muduo库中的主要类EventloopMuduo 的 EventLoop 核心解析1. 核心机制:事…...

docker部署XTdrone
目录 一、前置准备 二、依赖安装 三、ros安装 四、gazebo安装 五、mavros安装 六、PX4的配置 七、Xtdrone源码下载 八、xtdrone与gazebo(实际上应该是第四步之后做这件事) 九、键盘控制 参考链接:仿真平台基础配置 语雀 一、前置准…...

图解 | 大模型智能体LLM Agents
文章目录 正文1. 存储 Memory1.1 短期记忆 Short-Term Memory1.1.1 模型的上下文窗口1.1.2 对话历史1.1.3 总结对话历史 1.2 长期记忆Long-term Memory 2. 工具Tools2.1 工具的类型2.2 function calling2.3 Toolformer2.3.1 大模型调研工具的过程2.3.2 生成工具调用数据集 2.4 …...
Lambda表达式的方法引用详解
Lambda表达式的方法引用详解 1. 方法引用的概念与作用 定义:方法引用(Method Reference)是Lambda表达式的一种简化写法,允许直接通过方法名引用已有的方法。核心目的:减少冗余代码,提升可读性,尤其在Lambda仅调用一个现有方法时。语法符号:双冒号 ::。2. 方法引用的四种…...

echarts设置标线和最大值最小值
echarts设置标线和最大值最小值 基本ECharts图表初始化配置 设置动态的y轴范围(min/max值) 通过markPoint标记最大值和最小值点 使用markLine添加水平参考线 配置双y轴图表 自定义标记点和线的样式(颜色、符号等) 响应式调整图表大…...
gcc编译构建流程
0. 项目结构 /home/pi/test/ ├── src/ │ ├── add/ │ │ ├── add.cpp │ │ ├── add.h │ └── log/ │ ├── log.cpp │ ├── log.h │ ├── data.h ├── main.cppmain.cpp代码 // main.cpp #include "log.h&quo…...

Maven 中央仓库操作指南
Maven 中央仓库操作指南 登录注册 在 Maven Central 登录(注册)账号。 添加命名空间 注册 通过右上角用户菜单跳转到命名空间管理页面: 注册命名空间: 填入你拥有的域名并注册: 刚提交的命名空间状态是Unverified…...

BUUCTF——RCE ME
BUUCTF——RCE ME 进入靶场 <?php error_reporting(0); if(isset($_GET[code])){$code$_GET[code];if(strlen($code)>40){die("This is too Long.");}if(preg_match("/[A-Za-z0-9]/",$code)){die("NO.");}eval($code); } else{highlight…...
clickhouse-1-特性及docker化安装
clickhouse-1-特性及docker化安装 1.核心特性1.1.列式存储与高效压缩1.2.向量化执行引擎1.3.分布式架构与高可用性1.4.多样化的表引擎1.5.实时处理能力2.安装2.1 拉取镜像2.2 创建容器3.连接4.使用4.1.创建数据库5.其他5.1 primary key5.2 ENG…...
Docker核心笔记
一、概述 1、架构 Docker容器基于镜像运行,容器共享宿主机的内核,不会加载额外内核,通过Namespaces(环境隔离)和Cgroups(资源控制)实现隔离,Cgroups会限容器使用资源并控制优先级和统计数据。隔离后的容器仅包含应用所需的用户态依赖 2、安装 安装先卸载再安装,使用的yum…...
log日志最佳实践
log日志最佳实践 1、占位符的使用2、延迟计算 1、占位符的使用 在进行日志打印的时候,推荐使用占位符进行字符串打印,而不是直接使用字符串拼接。原因: 这样可以避免不必要的字符串拼接。使用占位符时,实际字符串拼接由日志框架…...

FreeRTOS--消息队列
一、简介 消息队列是FreeRTOS中用于任务与任务或任务与中断之间数据交换的一种机制,采用FIFO(先进先出)方式管理数据,也可以采用LIFO(后进先出)方式。有点类似全局变量。 1.1 那为什么不直接使用全局变量&a…...

三步快速部署一个本地Windows/Linux大语言模型ChatGLM(环境配置+权重下载+运行)
前言: 最近刚拿到实验室一个装了3张3090显卡的服务器账号,感觉不用来霍霍有点浪费,于是有了部署一个大语言模型的想法,除去下载权重和传文件到服务器上可能也就用了十分钟不到(这下看懂为啥python受众现在这么广了&…...
深入解析Spring Boot与Redis的缓存集成实践
深入解析Spring Boot与Redis的缓存集成实践 引言 在现代Web应用开发中,缓存技术是提升系统性能的重要手段之一。Redis作为一种高性能的内存数据库,广泛应用于缓存场景。本文将详细介绍如何在Spring Boot项目中集成Redis,并探讨其在实际开发…...
leetcode105.从中序与前序遍历序列构造二叉树:前序定根与中序分治的递归重建术
一、题目深度解析与核心挑战 在二叉树的重建问题中,"从中序与前序遍历序列构造二叉树"是一道考察递归分治思想的经典题目。题目要求我们根据一棵二叉树的前序遍历序列和中序遍历序列,重建出该二叉树的原始结构。这道题的核心难点在于如何利用…...
Python二级考试
目录 一、核心知识模块 1. 程序结构 2. 循环结构 3. 组合数据类型 4. 函数与模块 二、重点算法 1. 排序算法 2. 查找算法 三、文件操作 1. 基础文件处理 四、备考建议 五、典型易错点 以下是Python二级考试的复习要点整理,分为知识模块和备考建议&#…...

DeepSeek联网Google搜索引擎
目录: 1、使用背景2、实现代码3、Gradio 的 yield 机制 1、使用背景 比如所有易建联是什么时候退役的?使用大模型对这种实事回答不准确,需要通过联网搜索处理。 正确答案应该是2023年8月29日退役。 2、实现代码 # import gradio as gr# d…...