HTTP,如果自修改,以毫秒为单位

HTTP,如果自修改,以毫秒为单位,http,http-headers,Http,Http Headers,假设我从RESTWeb服务获得一个对象,这个对象有一个时间戳。此时间戳有一个毫秒组件。下次我请求相同的对象时,我不希望返回它,除非它已更改,所以我使用If-Modified-Since头。但该标题中的日期甚至不应该有毫秒。如果我对时间戳进行四舍五入,我将始终获取对象,就像它总是被修改一样。如果我把它汇总起来,我可能会错过一些更新。在这种情况下,If-Modified-Since头对我来说是完全无用的,还是我遗漏了什么?发送毫秒时间戳的服务不符合HTTP。必须作为HTTP日期发送,该日期非常清楚地

假设我从RESTWeb服务获得一个对象,这个对象有一个时间戳。此时间戳有一个毫秒组件。下次我请求相同的对象时,我不希望返回它,除非它已更改,所以我使用If-Modified-Since头。但该标题中的日期甚至不应该有毫秒。如果我对时间戳进行四舍五入,我将始终获取对象,就像它总是被修改一样。如果我把它汇总起来,我可能会错过一些更新。在这种情况下,If-Modified-Since头对我来说是完全无用的,还是我遗漏了什么?

发送毫秒时间戳的服务不符合HTTP。必须作为HTTP日期发送,该日期非常清楚地指定:

使用您正在使用的服务提交一个bug。以毫秒为单位发送上次修改的
或自上次修改后修改的
是无效的


如果亚秒精度很重要,那么使用它可能更合适。

我收到的时间戳不是作为上次修改的标题出现的,它是对象本身的属性。我想用If-Modified将它发回。@JoeShmo:答案是正确的<代码>如果修改,因为
也必须是HTTP日期(这意味着您不能发送毫秒),并且您使用的服务必须支持它。如果不了解更多有关服务的信息,很难说更多。
HTTP-date    = rfc1123-date | rfc850-date | asctime-date
rfc1123-date = wkday "," SP date1 SP time SP "GMT"
rfc850-date  = weekday "," SP date2 SP time SP "GMT"
asctime-date = wkday SP date3 SP time SP 4DIGIT
date1        = 2DIGIT SP month SP 4DIGIT
              ; day month year (e.g., 02 Jun 1982)
date2        = 2DIGIT "-" month "-" 2DIGIT
              ; day-month-year (e.g., 02-Jun-82)
date3        = month SP ( 2DIGIT | ( SP 1DIGIT ))
              ; month day (e.g., Jun  2)
time         = 2DIGIT ":" 2DIGIT ":" 2DIGIT
              ; 00:00:00 - 23:59:59
wkday        = "Mon" | "Tue" | "Wed"
            | "Thu" | "Fri" | "Sat" | "Sun"
weekday      = "Monday" | "Tuesday" | "Wednesday"
            | "Thursday" | "Friday" | "Saturday" | "Sunday"
month        = "Jan" | "Feb" | "Mar" | "Apr"
            | "May" | "Jun" | "Jul" | "Aug"
            | "Sep" | "Oct" | "Nov" | "Dec"