gpt4 book ai didi

HTTP If-Modified-Since 以毫秒为单位

转载 作者:可可西里 更新时间:2023-11-01 15:13:01 34 4
gpt4 key购买 nike

假设我从 REST Web 服务获取一个对象,并且该对象有一个时间戳。这个时间戳有一个毫秒部分。下次我请求同一个对象时,我不希望它被返回,除非它已经改变,所以我使用 If-Modified-Since header 。但是该 header 中的日期甚至不应该有毫秒。如果我将时间戳向下舍入,我将始终取回对象,就好像它总是被修改一样。如果我将它四舍五入,我可能会错过一些更新。在这种情况下,If-Modified-Since header 对我来说完全没用,还是我遗漏了什么?

最佳答案

发送毫秒时间戳的服务不符合 HTTP 标准。 Last-Modified必须作为 HTTP-date 发送 §3.3.1非常清楚地指定:

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"

提交您正在使用的服务的错误。以毫秒发送Last-ModifiedIf-Modified-Since是无效的。

如果亚秒精度很重要,使用 entity tags (ETag) 可能更合适.

关于HTTP If-Modified-Since 以毫秒为单位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18603154/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com