come2788 2019-03-12 15:15
浏览 722

Apache设置了ETag,为啥在max-age过期后,重新请求是200而不是304?

服务器配置

  • 系统:Ubuntu 16.04.6 LTS
  • 服务器:Apache/2.4.18
  • 开发框架:Thinkphp 5.0
  • apache配置:

apache2配置,去除了Last-Modified

描述问题

可以看到我的配置中是,设置了ETag并且取消了Last-Modified的,Cache-Control:public,max-age=60。

奇怪的是,在max-age过期之后,再访问同一个资源,发现是200而不是304,但是请求头If-None-Match跟响应头的ETag是一致的,请问还有哪些地方配置失败了,或者说哪个地方影响了ETag的正常功能。

网上都是说输入:FileETag INode Mtime Size就开启了,确实Header有ETag,但是不起作用,麻烦各位大佬们解答,谢谢!!!!

访问过程图

1. 第一次请求:Crtl + F5

图片说明

2. 第二次请求:F5(在max-age期间内)

图片说明

3. 第三次请求:F5(在max-age期间外)

图片说明

谢谢大佬们的阅读与解答

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
    • ¥15 求daily translation(DT)偏差订正方法的代码
    • ¥15 js调用html页面需要隐藏某个按钮
    • ¥15 ads仿真结果在圆图上是怎么读数的
    • ¥20 Cotex M3的调试和程序执行方式是什么样的?
    • ¥20 java项目连接sqlserver时报ssl相关错误
    • ¥15 一道python难题3
    • ¥15 牛顿斯科特系数表表示
    • ¥15 arduino 步进电机
    • ¥20 程序进入HardFault_Handler