HTTP协议中的缓存技术是如何实现的



缓存是位于服务器和客户端的中间单元,主要根据用户代理发送过来的请求,向服务器请求相关内容后提供给用户,并保存内容副本,例如HTML页面、图片、文本文件或者流媒体文件。然后,当下一个针对相同URL的请求到来时缓存直接使用副本来响应HTTP请求,而不需要向源服务器再次发送请求。
 
使用缓存有三大好处。第一是减少响应延迟。缓存服务器距离用户更近,如果可以直接提供服务,响应时延将大大减少,使用户感觉Web服务器反应更快。第二是减少网络带宽消耗。当缓存直接使用副本为用户服务时,缓存与源服务器之间的通信链路带宽消耗将大大降低,提供服务的缓存越靠近用户,节约的网络资源越多,特别是对于拥塞程度较高的运营商骨干网来说更是如此。第三是降低源服务器负载。用户原本需要访问源服务器的大量请求都在缓存内直接得到服务,源服务器的响应次数大量降低。
 
HTTP协议定义了各种各样的缓存控制方法,通过合理使用这些方法;适当配置网站缓存策略,既有助于网站服务更快、节省服务器负载和互联网的链接请求,又能最大程度地消除访问安全、时效性和用户统计方面所遇到的问题。缓存对于网站访问的改善是非常显著的,一个难以缓存的网站可能需要几秒去载入页面,而对比有缓存的网站页面几乎是即时显现,所以用户更喜欢速度快的网站并更经常访问。一般说来,缓存可以按照以下的基本原则工作:
 
1.如果响应消息的头信息告诉缓存不要保留副本,缓存就不会缓存相应内容。
 
2.如果请求信息需要源服务器认证或者涉及安全协议,相应的请求内容也不会被缓存。
 
3.如果缓存的内容含有以下信息,内容将会被认为是足够新的,因此不需要从源服务器重新获取内容。
 
4.含有过期时间和寿命信息,并且此时内容仍没有过期。
 
5.缓存内容近期被用来提供过服务,并且内容的最后更新时间相对于最近使用的时间较久。
 
6.如果缓存的内容已经过期,缓存服务器将向源服务器发出验证请求(通过ETag头信息或者 last-modified头信息),用于确定是否可以继续使用当前内容直接提供服务。
 
7.在某些情况下(比如源服务器从网络中断开了),缓存的内容在过期的情况下也可以直接提供服务。
 
8.如果在响应消息中不存在用于判断内容是否变化的验证值(ETag头信息或者last-modified头信息),并且也没有其他任何明显的新鲜度信息,内容通常不会被缓存。
 
以上原则告诉我们新鲜度和验证是确定内容是否可直接提供服务的最重要依据。如果缓存内容足够新鲜,缓存的内容就能直接满足HTTP访问的需求了;如果内容过期,而经源服务器验证后发现内容没有发生变化,绥存服务器也会避免将内容从源服务器重新传输一遍。
 
CDN互联专业提供国内外高防cdn加速服务
 
上一篇:怎样联系ddos攻击高手
下一篇:最后一页