Google及多数HTTP服务器Set-Cookie过期时间格式是否违反RFC7231?
问题解答
首先要明确:你混淆了HTTP通用头的日期格式与Cookie字段的日期格式规范。
- HTTP的
Date头确实遵循RFC 7231定义的三种HTTP-date格式,且优先使用IMF-fixdate(示例:Wed, 25 Jan 2023 13:45:10 GMT)。 - 但
Set-Cookie中的Expires字段,遵循的是RFC 6265的专属规范,它要求的日期格式为Wdy, DD-Mon-YYYY HH:MM:SS GMT——也就是你看到的Fri, 24-Feb-2023 13:45:10 GMT这种(日期与月份间用连字符分隔)。
RFC 6265专门针对Cookie的格式做了独立定义,并未沿用RFC 7231的HTTP-date规则,这是不同字段遵循不同标准的正常情况,并非服务器忽略规范。
你的客户端解析报错,根源在于错误地用HTTP-date的规则去解析Cookie的Expires字段。需要调整解析逻辑,针对Set-Cookie的Expires单独适配RFC 6265规定的格式。
内容的提问来源于stack exchange,提问作者Karen Petrosyan
相关产品推荐
相关产品推荐

