Postman需手动添加If-Modified-Since请求头才能触发304响应:在Headers标签页中Key填“If-Modified-Since”,Value填合法GMT时间(如Tue, 01 Nov 2026 00:00:00 GMT),且须从上一次200响应的Last-Modified头中准确复制该值。

Postman 本身不自动发送 If-Modified-Since 请求头,也不会像浏览器那样基于本地缓存自动触发条件请求——你必须手动构造它,否则永远收不到 304 响应。
Postman里怎么手动加If-Modified-Since头
直接在请求的 Headers 标签页里添加一行:
-
Key填If-Modified-Since -
Value填一个合法的 GMT 时间字符串,例如:Tue, 01 Nov 2026 00:00:00 GMT - 注意:时间必须是 GMT(不是本地时区),且格式严格匹配 RFC 7231;用
new Date().toGMTString()生成最稳妥 - 如果填错格式(比如用了 ISO 8601 或带时区偏移),服务器通常忽略该头,直接返回 200
怎么拿到上一次响应里的Last-Modified值
服务器只有在返回 200 时才会带上 Last-Modified 响应头,你需要先发一次普通 GET,再从响应头里复制这个值:
Postman Mac版是一款专为macOS设计的API开发与测试工具,凭借简洁的界面和强大的功能,深受开发者喜爱。它支持发送各种HTTP请求(GET、POST、PUT等),轻松管理接口集合、环境变量和模拟服务器。Mac用户可享受原生性能、快捷键优化及与系统无缝集成的体验,适用于接口调试、自动化测试和文档生成。无论是个人项目还是团队协作,Postman for Mac都能提升API开发效率,是ma
- 发一次原始请求,确保响应头含
Last-Modified: Wed, 27 Oct 2026 15:30:45 GMT - 右键响应头区域 → “Copy value” 或手动复制整行值
- 新建一个请求,把该值粘贴进
If-Modified-Since的Value栏 - 别直接复用旧请求改头——Postman 不会自动更新历史请求的 header 值
为什么加了头还是收不到304
常见原因不是 Postman 操作问题,而是服务端或缓存策略干扰:
- 服务器没实现
If-Modified-Since校验逻辑(只认If-None-Match/ETag) - 响应里没带
Last-Modified,或时间精度太粗(如只精确到秒,但文件秒级变动) - 中间有 Nginx、CDN 或反向代理,它们可能剥离或重写条件请求头
- 你用的是
GET但后端路由实际走的是动态接口(如 Express 中未设置静态文件缓存中间件),根本不会触发 HTTP 协议层校验
真正容易被忽略的一点:Postman 不维护跨请求的“缓存状态”,每次都是干净发起。想验证完整缓存流程(比如浏览器那种自动带头+自动降级行为),得配合真实浏览器 DevTools 或 curl 手动链式调试。Postman 只负责帮你精准控制某一次条件请求的输入。

















