Web cache 简要介绍
本文最后更新于:2025年1月29日 凌晨
Web cache
网络缓存,或者说 HTTP 缓存,是用来优化互联网的系统。在应用端和服务器端都有实现。图片或者其他文件的缓存,可以使得在浏览网页的时候,时延更小。
系统的部分介绍
正向与反向缓存
正向缓存是一个在 web 服务器之外,但是在客户端浏览器、ISP 或者公司网络之内的缓存。正向缓存只缓存被大量获取的内容。一个在客户端和服务器之间的代理服务器可以通过 HTTP 请求头来选择是否要存储 web 内容。
反向缓存位在于一个或者多个 web 服务器前面,用来加速来自网络的请求,和缩减请求峰值的压力。通常表现为一个内容分发系统,在整个网络中保存各点的内容副本。
HTTP 选项
超文本传输协议定义了用于控制缓存的三种基本机制:freshness, validation, and invalidation。这在来自服务器的 HTTP 响应消息的中被指定。
Freshness 允许不在原始服务器上重新检查它而使用响应 ,并且可以由服务器和客户端控制。 例如,到期响应给出了文档过期的日期,并且 Cache-Control: max-age 指令告诉缓存响应可用的秒数。
Validation 可用于检查缓存的响应过期后是否仍然良好的缓存响应。 例如,如果响应具有 Last-Modified 的 header,则缓存可以使用 If-Modified-Since header 来进行条件请求,以查看它是否已更改。 Etag(实体标签)机制也允许强和弱验证。
Invalidation 通常是通过缓存传递的另一个请求的副作用。 例如,如果与缓存响应关联的URL随后获取发布,放置或删除请求,则缓存响应将无效。 许多 CDN 和网络设备制造商都用动态缓存替换了这个标准的HTTP缓存控制。
合法性
1998年,DMCA为美国法典(17U.S.C.§:512)增加了规则,以便为缓存而豁免系统运营商的版权责任
服务器端软件
这是服务器端网络缓存软件列表。
名字 | 操作系统 | Forward mode | Reverse mode | 许可证书 |
---|---|---|---|---|
Apache HTTP Server | Windows, OS X, Linux, Unix, FreeBSD, Solaris, Novell NetWare, OS/2, TPF, OpenVMS and eComStation | Yes | Apache License 2.0 | |
aiScaler Dynamic Cache Control | Linux | Proprietary | ||
ApplianSys CACHEbox | Linux | Proprietary | ||
Blue Coat ProxySG | SGOS | Yes | Yes | Proprietary |
Nginx | Linux, BSD variants, OS X, Solaris, AIX, HP-UX, other *nix flavors | Yes | Yes | 2-clause BSD-like |
Microsoft Forefront Threat Management Gateway | Windows | Yes | Yes | Proprietary |
Polipo | Windows, OS X, Linux, OpenWrt, FreeBSD | Yes | Yes | MIT License |
Squid | Linux, Unix, Windows | Yes | Yes | GNU General Public License |
Traffic Server | Linux, Unix | Yes | Yes | Apache License 2.0 |
Untangle | Linux | Yes | Yes | Proprietary |
Varnish | Linux, Unix | Yes (possible with a VMOD) | Yes | BSD |
WinGate | Windows | Yes | Yes | Proprietary / Free for 8 users |
Nuster | Linux, Unix | Yes | Yes | GNU General Public License |
McAfee Web Gateway | McAfee Linux Operating System | Yes | Yes | Proprietary |