1)在客户端第一次输入url是,服务器端会返回内容和状态码200,表示请求成功,同时会添加一个“Last-Modified”的响应头,表示此文件在服务器上的最后更新时间;
2)客户端第二次请求此URL时,客户端会像服务器发送请求头“If-Modified-Since”,询问服务器该时间之后当前请求内容是否有被修改过,如果服务器的内容没有变化,则自动返回HTTP304状态码(只要响应头,内容为空,这样就节省了网络带宽)
Spring提供的对Last-Modified机制的支持,只需要实现LastModified接口,并重写getLastModified方法,保证当内容发生改变时返回最新的修改时间即可。
实例:
@RequestMapping("/test")
public class TestClass implements LastModified {
private long lastModified;
public long getLastModified(HttpServletRequest request) {
//时间戳逻辑,返回最后修改时间,例如
if (lastModified == 0L) {
lastModified = System.currentTimeMillis();
}
return lastModified;
}
//下面可写普通的Mapping请求对应的处理逻辑方法
}