RESTful Web Services – 缓存
缓存指的是在客户端本身中存储服务器响应,这样客户端就不需要再次请求同一资源。服务器响应应该包含有关如何进行缓存的信息,以便客户端为期限内缓存响应或永不缓存服务器响应。
以下是服务器响应可以具备的头以配置客户端缓存的列表 –
序号 | 标题和描述 |
---|---|
1 | 日期 创建资源时的日期和时间。 |
2 | 上次修改 上次修改资源时的日期和时间。 |
3 | 缓存控制 主要的头来控制缓存。 |
4 | 过期时间 缓存的过期日期和时间。 |
5 | 年龄 从服务器获取资源时的持续时间(以秒为单位)。 |
缓存控制头
以下是Cache-Control头的详细信息 –
序号 | 指令和描述 |
---|---|
1 | 公共 指示任何组件都可以缓存资源。 |
2 | 私有 表示资源只能由客户端和服务器缓存,中间人不能缓存该资源。 |
3 | 不缓存/无存储 表示资源不可缓存。 |
4 | 最大年龄 表示缓存有效期为最大年龄秒。之后,客户端必须发起另一个请求。 |
5 | 必须重新验证 告诉服务器,如果最大年龄过去了,请重新验证资源。 |
最佳实践
- 始终将静态内容(如图像、CSS和JavaScript)的缓存时间设置为2至3天的过期日期。
-
不要将过期日期设置得太高。
-
动态内容应仅缓存几小时。