Node.js 在 Linux 上的网络通信:从 HTTP、Express 到 WebSocket 与 TCP

这篇文章用四个最常见的 Node.js 网络通信场景,梳理 Linux 环境下该怎么选技术方案:原生 HTTP 适合快速起服务,Express 适合 API 与路由管理,WebSocket 解决实时双向通信,`net` 模块则面向底层 TCP 连接与自定义协议。 在 Linux 上用 Node.js 做网络服务时,真正影响开发效率的往往不是语法,而是通信方式的选择:原生 HTTP、Express、WebSocket 和 TCP 各自解决的问题并不一样。

Node.js 在 Linux 上的网络通信:从 HTTP、Express 到 WebSocket 与 TCP

如何用 SAST 工具扫描 SQL 注入风险

SAST 发现 SQL 注入,核心依赖 AST 分析和污点追踪:把用户输入一路跟到数据库执行点。但扫描结果并不能直接等同于漏洞结论,配置不完整会漏报,规则理解不到位也会误报。要把结果用起来,关键在于先配对 source、sink 和安全调用,再结合人工复核与 DAST 做交叉验证。

如何用 SAST 工具扫描 SQL 注入风险

Go 语言中空 `struct{}` 占多少空间?

Go 里的 `struct{}` 常被称为“零大小类型”,但它为什么几乎不占空间、什么时候真能省内存、又有哪些边界条件,很多人并不清楚。本文从 `unsafe.Sizeof` 验证、`zerobase` 机制,到 Set、信号通道和无状态接收器等常见写法,系统说明空结构体该怎么用、哪里要谨慎。

Go 语言中空 `struct{}` 占多少空间?

如何在 SQL 视图中使用子查询

在 SQL 视图中使用子查询并非一律可行,关键在于数据库版本、子查询类型以及优化器的处理方式。本文从能否直接写、何时用 WITH 改写、MySQL 5.7 的替代方案,到常见性能失速原因,梳理出一套更适合落地判断的写法与排查思路。

如何在 SQL 视图中使用子查询