cache-control

Nginx下配置Cache-Control头转

对着背影说爱祢 提交于 2019-12-29 03:13:14
HTTP协议的Cache -Control指定请求和响应遵循的缓存机制。 在请求消息或响应消息中设置 Cache-Control并不会影响另一个消息处理过程中的缓存处理过程。 请求时的缓存指令包括no-cache、no-store、max-age、 max-stale、min-fresh、only-if-cached等。 响应消息中的指令包括public、private、no-cache、no- store、no-transform、must-revalidate、proxy-revalidate、max-age。 Nginx的ngx_http_headers_module模块可以对Cache-Control头相关的东西进行配置 例如: 1 # 相关页面设置Cache-Control头信息 2 3 if ($request_uri ~* "^/$|^/search/.+/|^/company/.+/") { 4 add_header Cache-Control max-age=3600; 5 } 6 7 if ($request_uri ~* "^/search-suggest/|^/categories/") { 8 add_header Cache-Control max-age=86400; 9 } 个人理解的max-age意思是:客户端本地的缓存,在配置的生存时间内的

HTTP协议 (四) 缓存

只愿长相守 提交于 2019-12-28 22:51:04
转载小坦克: https://www.cnblogs.com/TankXiao/archive/2012/11/28/2793365.html HTTP协议 (四) 缓存 之前写过一个篇 【HTTP协议详解】 ,这次继续介绍HTTP协议中的缓存机制。HTTP协议提供了非常强大的缓存机制, 了解这些缓存机制,对提高网站的性能非常有帮助。 本文介绍浏览器和Web服务器之间如何处理"浏览器缓存",以及控制缓存的http header. 本文会使用Fiddler来查看HTTP request和Response, 如果不熟悉这工具,可以先参考 [Fiddler教程] 。在看本文的时候, 请务必打开Fiddler来实践。 阅读目录 缓存的概念 缓存的好处 Fiddler可以方便地查看缓存的header 如何判断缓存新鲜度 通过最后修改时间,判断缓存新鲜度 与缓存相关的header ETag 浏览器不使用缓存 直接使用缓存,不去服务器端验证 如何设置IE不使用缓存 公有缓存和私有缓存的区别 缓存的概念 缓存这个东西真的是无处不在, 有浏览器端的缓存, 有服务器端的缓存,有代理服务器的缓存, 有ASP.NET页面缓存,对象缓存。 数据库也有缓存, 等等。 http中具有缓存功能的是浏览器缓存,以及缓存代理服务器。 http缓存的是指:当Web请求抵达缓存时, 如果本地有“已缓存的”副本

How to prevent content being displayed from Back-Forward cache in Firefox?

我的未来我决定 提交于 2019-12-28 06:25:03
问题 Browser: Firefox 6.0 I've Page A with the following setup to make sure the content is NOT stored in the bfcache of the browser: 1) $(window).unload(function(){}); 2) Following HTTP headers: <meta http-equiv="pragma" content="no-cache" /> <meta http-equiv="expires" content="-1" /> <meta http-equiv="cache-control" content="no-cache"/> I've also hooked up the events pagehide and pageshow . When I am navigating away from the page, pagehide is invoked with CORRECT value for the event property

How to prevent content being displayed from Back-Forward cache in Firefox?

百般思念 提交于 2019-12-28 06:24:16
问题 Browser: Firefox 6.0 I've Page A with the following setup to make sure the content is NOT stored in the bfcache of the browser: 1) $(window).unload(function(){}); 2) Following HTTP headers: <meta http-equiv="pragma" content="no-cache" /> <meta http-equiv="expires" content="-1" /> <meta http-equiv="cache-control" content="no-cache"/> I've also hooked up the events pagehide and pageshow . When I am navigating away from the page, pagehide is invoked with CORRECT value for the event property

Why does Browser still sends request for cache-control public with max-age?

两盒软妹~` 提交于 2019-12-28 05:36:28
问题 I have Amazon S3 objects, and for each object, I have set Cache-Control: public, max-age=3600000 That is roughly 41 days. And I have Amazon CloudFront Distribution set with Minimum TTL also with 3600000. This is the first request after clearing cache. GET /1.0.8/web-atoms.js HTTP/1.1 Host: d3bhjcyci8s9i2.cloudfront.net Connection: keep-alive Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko)

转:Http头介绍:Expires,Cache-Control,Last-Modified,ETag

女生的网名这么多〃 提交于 2019-12-27 06:28:27
Http头介绍:Expires,Cache-Control,Last-Modified,ETag 缓存分很多种:服务器缓存,第三方缓存,浏览器缓存等。其中浏览器缓存是代价最小的,因为浏览器缓存依赖的是客户 端,而几乎不耗费服务器端的资源。 让浏览器做缓存需要给浏览器发送指定的Http头,告诉浏览器缓存多长时间,或者坚决不要缓存。 1.Expires(过期时间) HTTP头信息Expires(过期时间) 属性是HTTP控制缓存的基本手段,这个属性告诉缓存器:相关副本在多长时间内是新鲜的。过了这个时间,缓存器就会向源服务器发送请求,检查文档是否被修改。几乎所有的缓存服务器都支持Expires(过期时间)属性; 大部分Web服务器支持你用几种方式设置Expires属性;一般 的:可以设计一个绝对时间间隔: 基于客户最后查看副本的时间(最后访问时间)或者根据服务器上文档最后被修改的时间; Expires 头信息:对于设置静态图片文件(例如导航栏和图片按钮)可缓存特别有用;因为这些图片修改很少,你可以给它们设置一个特别长的过期时间,这会使你的网站对 用户变得相应非常快;他们对于控制有规律改变的网页也很有用,例如:你每天早上6点更新新闻页,你可以设置副本的过期时间也是这个时间,这样缓存 服务器就知道什么时候去取一个更新版本,而不必让用户去按浏览器的“刷新”按钮。

Http头:Expires,Cache-Control,Last-Modified,ETag

旧巷老猫 提交于 2019-12-27 06:22:34
Expires:过期时间 el:Expirse:Fri,30 Oct 1998 14:19:41 Cache-Control:缓存控制 el:Cache-Control:max-age=3600 Last-Modified:最后更改时间 ETag:版本号 Expires/Cache-Control是控制浏览器是否直接从浏览器缓存读取数据还是重新发送请求到服务器取数据。只是Cache-Control比Expires可以控制的多一些,而且Cache-Control会重写Expires规则 Last-Modified/ETag是浏览器发送请求到服务器后判断文件是否已经修改过,如果没有修改过就只发送一个304给浏览器,告诉浏览器直接从自己本地缓存去数据;如果修改过那就整个数据从新发个浏览器 http://www.51testing.com/html/28/116228-238337.html 来源: https://www.cnblogs.com/sanqianjin/p/9141201.html

How do I set my web site to cache but still make sure the user has the most recent version?

▼魔方 西西 提交于 2019-12-25 16:56:40
问题 I want my site to benefit from being cached but the site is updated pretty often. How can I make sure the user is getting the most recent version? Currently my .htaccess file looks like this: <IfModule mod_expires.c> # Enable expirations ExpiresActive On # Default directive ExpiresDefault "access plus 1 month" # My favicon ExpiresByType image/x-icon "access plus 1 year" # Images ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType image/jpg

expires_in max-age cache control doesn't work

Deadly 提交于 2019-12-24 13:23:19
问题 I can't get the max-age cache control to work properly, I have used expires_in that resulted in a "Cache-Control:max-age=86400, public, must-revalidate" header. But yet, the browser still sends the request to the server, at least it is defined as "304 not modified", meaning that the ETag/If-None-Match headers works properly. I have tested it with webrick on my localhost and on heroku, with chrome 45 and Safari. And no, my development tools are not opened, and the "disable cache" is not

JAX-RS REST service + EJB on WildFly 10, always adds no-cache HTTP header in responses

江枫思渺然 提交于 2019-12-24 09:49:56
问题 I have wrote a stateless EJB that provides a rest service. I am working with the Wildfly 10 application server and developing with the Netbeans IDE. I have tried to cache the return values of few methods for few hours by adding a max-age header in the http-response of the service methods. Please consider this is a simplified version of my bean: @Stateless @DeclareRoles({"role1","role2"}) @RolesAllowed({"role1","role2"}) @Path("api-dummy") public class DummyApiREST { @EJB private StuffFacade