有一需求,使用HTTP Request头中Last-Modified-Since在请求中上传请求时间。在REST服务端需要利用HTTP 200和304(SC_NOT_MODIFIED)来返回REST接口的返回HTTP响应码。
比如(T1,T2,T3,T4)。如果用户连续请求,四个时间点返回200响应码,并且返回结果不同,同时将时间点写入HTTP Response中的Last-Modified中返回;在时间点区间内,返回304。
这涉及到四个时间点|系统当前时间|浏览器Last-Modified-Since三个时间的比较。
后来发现无论如何设计HTTP Response中的Last-Modified,浏览器传上来的Last-Modified-Since转换为long型后,最后三位都是0,即只能精确到秒,不能精确到毫秒。
代码中只能按这种方式进行判断。
clientLastModified >= ((validTimeArr[index] / 1000) * 1000