我们平常在页面发送一个url请求的时候,会通过网络去服务器获取这个资源,网速好的时候倒是没什么,但是网络差一点的话,资源获取的延时就会很长,用户体验就会大大降低。但是我们可以使用缓存来解决这个问题。
当我们请求一个资源的时候,会返回一个响应头,这时只要在响应头里加上一个过期时间,只要过期时间没有到期,浏览器就会直接读缓存,而不是重新通过网络读取这个资源。在spring中的控制器可以做到这一点。
只要在静态页面跳转的控制器加上HttpServletResponse response参数,并且设置响应头的延时时间
response.setDateHeader("Expires", System.currentTimeMillis()+1*60*60*1000);
这样,第二次访问这个页面的时候,就不会重新通过这个控制器从网络中获取了,而是直接从浏览器缓存中获取,大大提高了资源的访问速度。
浏览器在访问一个url的时候,会先访问浏览器的缓存空间,有没有这个条记录,有的话,检查时间,过期,重新读,没过期,直接从缓存拿,如果没有这条缓存记录,就访问url。但是,有些资源我们不希望浏览器从缓存中读取,比如我们平时经常用的验证码。这时只要在请求url的网址后面加上一个不会重复随机字段,浏览器就不会从缓存中读取资源了。