# Fullstack Mern Guide Request Limit Rule

> 请求限制规则

- Skill: `liaosw97/fullstack-mern-guide-request-limit-rule` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add liaosw97/fullstack-mern-guide-request-limit-rule`
- Raw SKILL.md: https://api.skillmd.com/api/skills/liaosw97/fullstack-mern-guide-request-limit-rule/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: liaosw97 (https://skillmd.com/u/liaosw97)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/liaosw97/fullstack-mern-guide-request-limit-rule

---


# 请求限制规则

本规则集定义了全栈 MERN 指南中请求限制（速率限制）的规范和最佳实践，旨在保护后端服务免受滥用、DDoS 攻击，并确保资源的公平分配。

## 1. 速率限制策略

- **基于 IP 的限制**: 限制来自单个 IP 地址的请求频率。
- **基于用户/API Key 的限制**: 对于认证用户或使用 API Key 的请求，可以设置更宽松或更精细的限制。
- **滑动窗口算法**: 推荐使用滑动窗口算法（如滑动日志或滑动窗口计数器）来实现更平滑和准确的速率限制，而非固定窗口。

## 2. 限制类型

- **每秒请求数 (RPS)**: 限制在给定时间窗口内允许的请求数量。
- **并发请求数**: 限制同时处理的请求数量，防止服务器过载。
- **带宽限制**: 限制客户端或用户可以消耗的总带宽。

## 3. 响应处理

- **HTTP 状态码**: 当请求被限制时，应返回 `HTTP 429 Too Many Requests` 状态码。
- **Retry-After 头**: 在响应中包含 `Retry-After` HTTP 头，告知客户端何时可以再次发送请求。
- **友好的错误信息**: 提供清晰的错误信息，解释请求被限制的原因和如何解决。

## 4. 实施层面

- **中间件**: 在 Express.js 应用中，可以使用 `express-rate-limit` 等中间件轻松实现速率限制。
- **反向代理/API 网关**: 在生产环境中，推荐在 Nginx、Cloudflare 或 API 网关层面实现速率限制，以在请求到达应用服务器之前进行过滤。

## 5. 绕过与白名单

- **内部服务**: 内部服务之间的通信通常可以绕过速率限制。
- **特定用户/IP**: 对于某些特殊用户或合作伙伴的 IP 地址，可以将其加入白名单，免受限制。

## 6. 监控与告警

- **监控被限制的请求**: 监控被速率限制拒绝的请求数量，以便及时发现潜在的攻击或配置问题。
- **告警**: 当被限制的请求达到一定阈值时，触发告警通知。

