zoukankan      html  css  js  c++  java
  • 设置响应头控制浏览器的缓存

    概述

    缓存这个技术在我们实际的开发中是非常常用的,也是非常重要的一项技术。主要用于客户端(浏览器)向服务器端请求的是一些比较大的数据,并且这个数据在短时间内不会经常发生变化的情况,比如一些网站的logo图片,它是一个网站的标志,一般不会发生变化,如果不缓存的话,而logo图片又比较大的话,那么浏览器每次发送请求时,服务端都要返回logo图片这个大数据信息,会影响到服务器的性能和效率,服务器端变慢了,也势必会导致用户页面看到的数据加载变慢。如果我们对图片进行一个合适时间内的缓存的话,这样会大大提高服务端的效率,还能提高客户端的用户体验。


    Demo

    使用response来设置缓存,主要是设置http的响应头expires的信息。

    package com.test;
    
    import java.io.IOException;
    import java.util.Date;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * 设置缓存
     * 当浏览器第一次发送请求,如果服务器设置了缓存,浏览器就会把这次获得的数据缓存起来,
     * 在缓存时间内,浏览器是不会向服务器发送请求的,而是直接从缓存中获取数据
     */
    @WebServlet("/buffer.do")
    public class BufferServlet extends HttpServlet {
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            // 这里的时间是从1970开始,所以要设置当前时间+缓存的时间,时间单位为毫秒,这里缓存的时间为15秒
            response.setDateHeader("expires", System.currentTimeMillis() + 1000 * 15);
            // 模拟的大数据
            String bigData = "this is a big data,but it is not change. " + (new Date().toString());
            response.getWriter().print(bigData);
        }
    
    }

    测试

    测试地址:http://127.0.0.1/buffer.do

    测试结果:刷新网页,不变化,15秒后才会变化

  • 相关阅读:
    PMP工具与技术篇--4.2.1-4 思维导图(数据表现技术)
    PMP工具与技术篇--4.2.1-3 决策--多标准决策分析技术
    PMP工具与技术篇--4.2.1-2 决策--投票(举手表决)
    PMP工具与技术篇--4.2.1-1 标杆对照技术(数据收集技术)
    PMP工具与技术篇--4.2.1 收集需求工具与技术总结
    PMP--4.2.1-2 需求跟踪矩阵
    PMP--4.2.1-1 需求文件
    PMP--4.2.1 收集需求--需求文件--需求跟踪矩阵
    PMP工具与技术篇--4.2 备案分析(数据分析技术)
    PMP--4.2-2 开发方法
  • 原文地址:https://www.cnblogs.com/Mike_Chang/p/10070247.html
Copyright © 2011-2022 走看看