今天我们来讲解一下http中缓存。
现在很多网站都采用缓存技术,可你们真正的理解的缓存技术吗。今天我们就来讲解一下http中的缓存。
它类似于cdn加速的缓存;程序类的缓存不做讲解。
http缓存一般都是有代理服务器。比如我们打开了某个域名,那就是向这个域名发送了一个Get请求。这个请求先经过代理服务器,然后转给目标服务器。然后目标服务器返回数据。也是先经过代理服务器。关键部分了。代理服务器就会复制一份相同的资源到本机上。然后返回客户端。当客户端下一次在访问的时候。在经过代理服务器时。缓存服务器会判断。如果有缓存则直接返回缓存数据。
缓存服务器的优势在于利用缓存可避免多次从源服务器转发资源。因此客户端可就近从缓存服务器上获取资源,而源服务器也不必多次处理相同的请求了。
即便缓存服务器内有缓存,也不能保证每次都会返回对同资源的请求。因为这关系到被缓存资源的有效性问题。当遇上源服务器上的资源更新时,如果还是使用不变的缓存,那就会演变成返回更新前的“旧”资源了。
即使存在缓存,也会因为客户端的要求、缓存的有效期等因素,向源服务器确认资源的有效性。若判断缓存失效,缓存服务器将会再次从源服务器上获取“新”资源。
缓存不仅可以存在于缓存服务器内,还可以存在客户端浏览器中。以Internet Explorer 程序为例,把客户端缓存称为临时网络文件(Temporary Internet File)。
浏览器缓存如果有效,就不必再向服务器请求相同的资源了,可以直接从本地磁盘内读取。
另外,和缓存服务器相同的一点是,当判定缓存过期后,会向源服务器确认资源的有效性。若判断浏览器缓存失效,浏览器会再次请求新资源。
总结
现在的大多数缓存都做不到实时更新,如果缓存服务器能实时读取服务器某个网页文件的更新时间。然后由缓存服务器去请求。返回最新数据到缓存服务器。这样就能做到实时的更新了。当然这仅仅是针对于文件上的更新。数据库上的更新,就要另外考虑了。
网友评论文明上网理性发言已有0人参与
发表评论: