You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

服务器返回HTTP 304状态码时,服务端代码是否会执行?

关于304状态码下服务端代码是否执行的说明
  • 304 Not Modified的核心逻辑是:客户端携带缓存校验头(如If-Modified-Since、If-None-Match)发起请求,服务端对比资源的最新状态(最后修改时间、ETag),确认资源未变更时返回304,客户端直接使用本地缓存。
  • 服务端代码是否执行,取决于304校验逻辑的执行时机:
    • 未执行业务代码的场景:如果是服务器(如Nginx、Apache)或开发框架(如Spring、Express)内置的304校验,通常会在进入业务逻辑前完成校验。一旦判定资源未修改,直接返回304,不会触发API端点里的业务代码(比如数据库查询、业务计算)。
    • 已执行业务代码的场景:如果是开发者手动实现304逻辑——比如先执行业务代码获取最新数据,再对比ETag/修改时间,发现无变化后返回304——这种情况下,业务代码已经完整执行,只是最终返回的是304状态码且无响应体。
  • 优化建议:若想避免不必要的资源消耗,应将304校验逻辑前置,优先利用服务器或框架的原生缓存机制,或在路由入口处先完成校验,再决定是否进入业务逻辑。

内容的提问来源于stack exchange,提问作者tobbe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 15:12:22