Any valid HTTP headers can be put in these files. This provides another way to apply the Expires header, and it's a way to add the Cache-Control headers. The relevant Cache-Control headers are:
Cache-Control : max-age = [delta-seconds]
Modifies the expiration mechanism, overriding the Expires header. Max-age implies Cache-Control : public.
Cache-Control : public
Indicates that the object may be stored in a cache. This is the default.
Cache-Control : private
Cache-Control : private = [field-name]
Indicates that the object (or specified field) must not be stored in a shared cache and is intended for a single user. It may be stored in a private cache.
Cache-Control : no-cache
Cache-Control : no-cache = [field-name]
Indicates that the object (or specified field) may be cached, but may not be served to a client unless revalidated with the origin server.
Cache-Control : no-store
Indicates that the item must not be stored in nonvolatile storage, and should be removed as soon as possible from volatile storage.
Cache-Control : no-transform
Proxies may convert data from one storage system to another. This directive indicates that (most of) the response must not be transformed. (The RFC allows for transformation of some fields, even with this header present.)
Cache-Control : must-revalidate
Cache-Control : proxy-revalidate
Forces the proxy to revalidate the page even if the client will accept a stale response. Read the RFC before using these headers, there are restrictions on their use.
Caveats and gotchas
*
HTTP/1.0 has minimal cache control and only understands the Pragma: no-cache header. Caches using HTTP/1.0 will ignore the Expires and Cache-Control headers.
*
None of the Cache-Control directives ensure privacy or security of data. The directives "private" and "no-store" assist in privacy and security, but they are not intended to substitute for authentication and encryption.
*
This article is not a substitute for the RFC. If your are implementing the Cache-Control headers, do read the RFC for a detailed description of what each header means and what the limits are.
在jsp页面中
<%
String path = request.getContextPath();
HashMap> discounts = DiscountManager.getInnerDiscount();
response.setHeader("Cache-Control","public,max-age=600");
response.setDateHeader("Expires",(new Date()).getTime() + 1000 * 60 * 10);
%>
在HtML代码中
servlet
response.setHeader("Pragma","No-cache");
response.setDateHeader("Expires",0);
response.setHeader("Cache-Control","no-cache");
.Cache-Control头域
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。各个消息中的指令含义如下:
Public指示响应可被任何缓存区缓存。
Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。
no-cache指示请求或响应消息不能缓存
no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。
max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。
min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。
max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。
分享到:
相关推荐
一、`Cache-Control`简介 `Cache-Control`头字段是在HTTP/1.1中引入的,用于替代或扩展早期HTTP版本中的`Pragma`头。它的设计目标是增强缓存机制的可控性,允许开发者精确地指定资源的缓存策略,从而优化网络性能,...
`Cache-Control`字段可以接受多种指令,以控制网页的缓存策略。在本文中,我们将深入探讨`Cache-Control: private`以及其他常见的值,以及它们对不同浏览场景的影响。 1. **Cache-Control: private** `Cache-...
Response.CacheControl = "no-cache" ' 禁止缓存 ``` 以上代码示例展示了如何使用ASP来调整HTTP响应的缓存控制设置。 综上所述,`Cache-Control`和`Expires`字段是HTTP缓存策略的重要组成部分,它们决定了浏览器...
例如,`Cache-Control: max-age=3600`表示资源可以在客户端缓存一小时,而`Cache-Control: no-cache`则指示代理服务器或浏览器在每次请求时都要向服务器验证资源是否已更新。 以下是一个简单的Go中间件实现示例,...
$ git clone git@github.com:jameslnewell/cache-control-spider.git $ npm i 用法 $ node index.js http://dev.online4.nib.com.au 原料药 方法 新的Crawler() 创建一个新的搜寻器。 .add(网址) 添加要爬网...
var cacheControl = require ( 'cache-control-midd' ) ;var app = express ( ) ;// Sets `Cache-Control` header to `public, max-age=600` and `Expires` too// 'minute' -> 10 minutes -> 600 secondsapp . get ...
npm install cache-header-control --save 用法 var express = require ( 'express' ) ; var setCacheHeader = require ( 'cache-header-control' ) ; var app = express ( ) ; app . use ( function ( req , res ...
安装composer require nomenjanahary/cache-control配置storage_cache_control : exclude_status : - " 5xx " - " 4xx " default_cache : maxAge : 3600 public : true # merge, replace override_strategy : merge ...
与 JAX-RS Web 服务一起使用的注释,以向响应添加标头“Cache-Control”。 该项目应该被视为只是 JAX-RS 环境中注释功能的骨架。 用法 使用资源配置: 在package.name 中包含 CacheFilterFactory.java 并在您的 ...
nginx-缓存控制没有缓存清除模块的 Nginx 缓存控制插件部分代码是基于其他 Nginx Cache Plugins 的代码,但这是设计为简单、轻量级的实现== 具体.... == Mark Jaquith 提出了使用强制动态页面加载的标头的基本设计,...
例如,`Cache-Control: no-cache`意味着每次请求都应该向服务器验证是否更新了资源;`Cache-Control: max-age=3600`表示响应可以被缓存一小时。理解并正确设置`Cache-Control`对于优化网站性能和减少网络流量至关...
后端技术系列教程,包括: API开发全套教程 后端安全全套教程 后端微服务架构全套教程 后端性能优化全套教程 后端框架全套教程 后端缓存技术全套教程 后端编程语言全套教程 数据库技术全套教程
然而,当启用User-mode caching时,可能会出现一个特定问题,即`Cache-Control`头部设置为`no-cache`,这意味着浏览器和代理服务器不会缓存页面,这可能导致不必要的网络流量和性能降低。 `Cache-Control`是HTTP...
这是一个用引导的项目。入门首先,运行开发服务器: npm run dev# oryarn dev 用浏览器打开以查看结果。 您可以通过修改pages/index.js来开始编辑页面。 页面在您编辑文件时自动更新。 可以在上访问。...
8. **文件元数据**:上传文件时,可以设置文件的元数据,如Content-Type(文件类型)、Cache-Control(缓存控制)、Expires(过期时间)等,这些信息会影响文件在OSS中的存储和访问方式。 9. **JSUploadOSSTest文件...
常见的`Cache-Control`指令包括`public`、`private`、`no-cache`、`max-age`等。例如,`public`指示响应可被任何中间缓存存储,`max-age`则指定了缓存的有效期。 在Sinatra中,我们可以通过设置响应头来添加`Cache-...
const withCacheControl = require ( 'connect-cache-control2' ) . withCacheControl ; app . get ( '/some-path' , withCacheControl ( { maxAge : '2 hours' , private : true } ) , function ( req , res ) {...
header主要有如下: 代码如下:Cache-control:no-cache、no-store如果出现这两值,nginx缓存服务器是绝对不会缓存的 代码如下:Expires:1980-01-01如果出现日期比当前时间早,也不会缓存。 2. 解决不缓存方案 2.1 ...
S3存储桶缓存控制 一个简单的nodeJS脚本,使用“ aws-sdk” NPM模块。 我之所以建立它,是因为在S3上我有一个装满图像的巨大存储桶,并且需要向所有这些图像添加缓存控制标头。 AWS S3(目前)不支持在存储桶级别...