Web 缓存和条件 GET 语句
什么是网页缓存?
保存数据以供重用的活动,例如由Web服务器提供的网页副本,称为Web缓存。
它在用户第一次访问页面时被缓存或保存,并且缓存将在用户下次请求相同页面时传送副本,防止源服务器变得不堪重负。
Web缓存技术极大地提高了页面交付速度并减少了后端服务器所需的工作量。
缓存服务器可以配置为以预定的时间间隔刷新或响应指定的事件,以保证只缓存最新的内容。(适用于快速变化的信息,例如新闻)。
缓存可以通过在服务器不可用时交付已缓存的内容来帮助防止完全中断。
Varnish是一个基于订阅和基于服务的解决方案套件,包括强大的Web缓存。
代理服务器
代理服务器——源服务器和客户端之间的中介——执行网络缓存。当客户端请求信息(通过HTTP消息)时,请求通过代理服务器路由,代理服务器执行以下操作-
它首先查看副本是否存储在本地。
如果有,则直接将结果发送给客户端。
否则,它代表终端主机执行查询,在本地保存响应的副本,并将其发送回终端主机。
ISP(Internet服务提供商)、大学甚至公司办公室通常会部署Web缓存(或代理服务器),其中许多终端主机连接到代理服务器。
使用代理服务器的优势
它减少了回答重复请求所需的时间。(特别是如果原始服务器和接收者之间的瓶颈比代理服务器和接收者之间的瓶颈更小。)
它通过减少访问链路带宽(在机构或办公室)来降低成本。
它减少了Internet流量的总量。
Web缓存和条件GET语句
如果源服务器上的材料已更改,从而使代理服务器的副本过时怎么办?条件GET语句在这里发挥作用。
当代理服务器收到HTTP请求并在本地存储响应时,它仍然会请求源服务器查看自代理服务器上次请求后是否已更新相关项目。“ConditionalGET”语句中的“If-modified-since”字段与“Get”语句的不同之处在于它描述了上次发出相同请求的时间。
HTTP304状态代码通知代理服务器内容尚未更新。它发送修改后的内容(如果进行了任何更改)——HTTP200响应消息代码。
如果代理服务器收到304–“NoModification”回复,它会向客户端发送其本地副本。如果该项目已被修改,缓存会转发它,同时还将它存储在本地,以及它收到它的日期和时间(以便稍后可以向原始服务器请求修改)。
由于显而易见的原因,HTTP304消息没有消息正文。