是否有办法强制对静态文件返回200(缓存)响应而不是304未修改? 如果是这样,您可能可以节省大量服务器请求,并显著加快返回访问者的加载时间。
是否有办法强制对静态文件返回200(缓存)响应而不是304未修改? 如果是这样,您可能可以节省大量服务器请求,并显著加快返回访问者的加载时间。
# Set cache
expires 1M;
add_header Pragma public;
add_header Cache-Control "public";
这将放置在你的位置块中..
我认为关于这个问题有很多误导性的信息,其中之一是错误地认为200(缓存)与200是相同的。
根据我的理解:
200 - 服务器请求 - 传输成功 200(缓存)- 成功 - 没有服务器请求(从缓存中获取) 304 - 服务器请求 - 无传输(未修改)
据我所知,200(缓存)完全不需要服务器请求。
expires
指令。浏览器在到达过期时间之前不会再次向服务器发出请求。此时,如果静态文件未改变,则服务器仍可能返回304响应,并且必须等到到达过期时间后才会再次检查。200不是缓存响应,它表示成功并要求响应包含结果。304表示未修改的资源;也就是说,您已经拥有它,因此不返回任何内容。因此,您建议的操作应该导致所有伪装成200的304失败。即使它没有这样做,使用虚假的200响应也无法节省任何请求或加快速度。
编辑:在某些情况下,200表示已成功从缓存中获取资源...