1. 在客户端第一次输入URL时,服务器端会返回内容和状态码200 ,表示请求成功,同时会添加 个“Last-Modified ”的响应头,表示此文件在服务器上的最后更新时间。
例如, Last-Modified:Wed ,4Mar2012 10:22:42 GMT”表示最后更新时间为( 2012-03-14 10:22 )
2. 客户端第二次请求此URL时,客户端向服务器发送请求头”IιModified Since“,询问服务器该时间之后当前请求内容是否有被修改过,如“If-Modified Since: Wed, 14 Mar 2012 10:22:42 GMT”,如果服务器端的内容没有变化,就自动返回 HTTP 304 状态码(只要响应头, 内容为空,这样就节省了网络带宽)。
在Spring也提供的对 Last-Modified机制的支持,只需要实现 LastModified 接口,在第一次逻辑发生变化的时候便会返回最新修改时间
如下所示:
@Override
public long getLastModified(HttpServletRequest request, Object handler) {
if (handler instanceof LastModified) {
return ((LastModified) handler).getLastModified(request);
}
return -1L;
}