Introduction to web cache poisoning
写在开头:具体实践还是要做题。题目没有刷到这个专题,先做阅读了解。
英语水平有限,翻译欠佳,请各位多多包涵。也欢迎指正。
web caching
和客户端缓存类似,客户端缓存:暂时地保存图片到本地,下次访问便会很快。
内容交付链下,
web服务器,中间系统,内容交付网络(CNDs)都被用于web缓存,以应对多个客户端请求(无需每次建索原始内容)。有利于负载均衡。
如图,左边为client,中间为caching server,最右为web application。
caching server会解压request中的cache key,然后查看是否在存储的key中是否有匹配该cache key的数据(视频在讲接该图的时候还解释了如果是实际架构该如何,例如,redis+mongo,或在niginx下如何配置caching server)
如果一个请求,你第一次发送,测算response响应时间为2s,第二次为0.25s,那么服务器很有可能缓存了你的请求
cache keys work
确认一个东西是否被缓存,缓存服务器会保存一张全部缓存内容的index表。然后用cache key来查找请求。
直观上去理解cache key:
本质上,是用于缓存服务器的request的签名
决定两个单独的请求是否加载同样的资源
每个缓存机制计算cache key都不同,但大多时候它就像获取request的基础部分,并把全部内容拼接成字符串一样简单。