标签: #web
关于 GPU、LLM、MLOps、Kubernetes 以及心态的文章 · 8 篇
JWT 与会话,何时用哪个 — 用「状态放在哪里」来理清认证选型
JWT 与会话的区别不在加密,也不在性能,而只在一点:认证状态是放在服务器还是放在客户端。由这个选择直接推出 JWT 无法即时失效这一根本弱点,也解释了为什么短过期时间、刷新令牌和黑名单这些对策最终又把状态请了回来。本文围绕令牌存放位置,把 localStorage 的 XSS 暴露与 httpOnly Cookie 的 CSRF 暴露连同 SameSite 属性一起比较,并用代码点出 alg none、漏掉签名校验这类经典实现漏洞。还
2026-07-26 · 18 分钟阅读 #web#jwt#session#authentication#securityWebSocket、SSE 与轮询 — 实时通信方式怎么选,以及为什么多数情况用不上 WebSocket
被叫作「实时」的需求,大多数其实是从服务器到客户端的单向推送,而这种情况下 SSE 比 WebSocket 简单得多,还能原样沿用现有的 HTTP 基础设施。自动重连和基于 Last-Event-ID 的续传都写进了规范里,认证、日志、压缩也都还是平时那一套。本文用表格比较包含轮询与长轮询在内的四种方式的延迟与成本,并划出 WebSocket 真正必要的边界。还整理了代理的空闲超时与缓冲、HTTP/1.1 的连接数上限、水平扩展所需的发
2026-07-26 · 19 分钟阅读 #web#websocket#server-sent-events#realtime#scalability把 HTTP 缓存用对 — Cache-Control、ETag 与 stale-while-revalidate 的准确含义
no-cache 的意思不是「不要缓存」,而是「可以缓存,但用之前必须验证」。本文从这一字之差出发,梳理 Cache-Control 各指令的准确含义、条件请求与 304 真正省下的东西和省不下的东西,以及带哈希的文件名加 immutable 为什么成了前端发布的标准组合。还会谈到浏览器、CDN、反向代理这三层各自只能用不同方式失效这一事实,Vary 头把缓存键炸开的过程,以及 stale-while-revalidate 同时兼顾延迟
2026-07-26 · 16 分钟阅读 #web#http-caching#cache-control#cdn#performanceCORS 错误,为什么该修的是服务器 — 浏览器策略的准确行为与那些错误解法
CORS 不是保护服务器的安全装置,而是浏览器用来判断要不要让脚本读取响应的策略。所以 curl 能通而只有浏览器被挡住,要修的地方永远是服务器的响应头。本文梳理了预检发生的准确条件、使用 credentials 时为什么不能用通配符、缺少 Vary 头导致 CDN 缓存被污染的事故,以及按浏览器错误消息解读原因的对照表。还会谈到代理绕行在什么情况下正当、什么情况下不正当,开发时把浏览器安全关掉这条建议为什么很糟,以及最危险的那个误解:
2026-07-26 · 19 分钟阅读 #web#cors#http#browser-security#api限流算法怎么选 — 固定窗口、滑动窗口与令牌桶的真实差别
明明按每分钟 100 次拦着,却放过了 200 次,这不是 bug,而是固定窗口算法被定义好的行为。本文用表格比较固定窗口、滑动日志、滑动窗口计数器、令牌桶这四种做法在内存与精度上的取舍,并用数字把边界问题算清楚。还整理了分布式环境下为什么需要 Redis 的原子操作、按节点做本地限流会带来多大误差、以 IP 作为键会坏在哪里。最后讲怎么用 429 响应配合 Retry-After 和 RateLimit 系列头把状态告诉客户端,以及没
2026-07-26 · 17 分钟阅读 #web#rate-limiting#api-design#redis#reliabilityContent-Encoding: zstd — Safari 26.3 补齐三大引擎,下一步是 RFC 9842 压缩字典
2026年2月,Safari 26.3 支持了 Content-Encoding: zstd,继 Chrome 123(2024-03)、Firefox 126(2024-05) 之后,三大浏览器引擎现在都能接收 zstd 响应了。由于是基于协商的,采用风险很低,但服务器端仍然不对称 — nginx 和 Apache httpd 都没有官方 zstd 模块,现实可行的路径是 CDN(如 Cloudflare)、Caddy,或者 Node
2026-07-17 · 17 分钟阅读 #performance#web#network#browser输入 URL 并按下回车之后会发生什么:从浏览器到像素的全链路巡礼
在地址栏敲入 URL、按下回车的那一秒里,究竟发生了多少事情。从 URL 解析,到带着递归查询与多层缓存的 DNS 解析、TCP 三次握手、TLS 握手、HTTP 请求与响应,再到 HTML 解析和关键渲染路径。这是一趟从浏览器一路走到第一个像素的全栈巡礼。
2026-07-02 · 17 分钟阅读 #networking#web#fundamentals用 Rust 构建 Web API:Axum 与 Actix
一份用 Rust 构建 Web 后端的实战指南。以示例为主,梳理 Axum 的处理函数、提取器、路由与共享状态,tower 中间件,用 serde 处理 JSON,用 sqlx 连接数据库,健壮的错误处理,以及与另一位代表性竞争者 Actix Web 的比较。
2026-06-28 · 15 分钟阅读 #rust#web#axum#backend