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