课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
缓存功能的应用是每一位软件开发程序员都需要熟练掌握的一个互联网编程技术知识,下面我们就通过案例分析来了解一下,软件开发常用缓存类型分析。
1、HTTP缓存
当用户通过浏览器请求服务器的时候,会发起HTTP请求,如果对每次HTTP请求进行缓存,那么可以减少应用服务器的压力。
当一次请求的时候,浏览器本地缓存库没有缓存数据,会从服务器取数据,并且放到浏览器的缓存库中,下次再进行请求的时候会根据缓存的策略来读取本地或者服务的信息。
2、强制缓存
当浏览器本地缓存库保存了缓存信息,在缓存数据未失效的情况下,可以直接使用缓存数据。否则就需要重新获取数据。
这种缓存机制看上去比较直接,那么如何判断缓存数据是否失效呢?这里需要关注HTTPHeader中的两个字段Expires和Cache-Control。
Expires为服务端返回的过期时间,客户端一次请求服务器,服务器会返回资源的过期时间。如果客户端再次请求服务器,会把请求时间与过期时间做比较。
如果请求时间小于过期时间,那么说明缓存没有过期,则可以直接使用本地缓存库的信息。
反之,说明数据已经过期,必须从服务器重新获取信息,获取完毕又会更新新的过期时间。
这种方式在HTTP1.0用的比较多,到了HTTP1.1会使用Cache-Control替代。
Cache-Control中有个max-age属性,单位是秒,用来表示缓存内容在客户端的过期时间。
例如:max-age是60秒,当前缓存没有数据,客户端一次请求完后,将数据放入本地缓存。
那么在60秒以内客户端再发送请求,都不会请求应用服务器,而是从本地缓存中直接返回数据。如果两次请求相隔时间超过了60秒,那么就需要通过服务器获取数据。
3、对比缓存
需要对比前后两次的缓存标志来判断是否使用缓存。浏览器一次请求时,服务器会将缓存标识与数据一起返回,浏览器将二者备份至本地缓存库中。浏览器再次请求时,将备份的缓存标识发送给服务器。
服务器根据缓存标识进行判断,如果判断数据没有发生变化,把判断成功的304状态码发给浏览器。
这时浏览器就可以使用缓存的数据来。服务器返回的就只是Header,不包含Body。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。