在golang中无法获得cookie过期时间

时间:2015-04-12 22:01:57

标签: http cookies go

我正在设置新的Cookie

func f1(w http.ResponseWriter, r *http.Request) {
...
expire := time.Now().AddDate(0, 1, 0)
cookie := http.Cookie{"token", token, "/", "domain", expire, expire.Format(time.UnixDate), 86400, true, true, "token=" + token, []string{"token=" + token}}
http.SetCookie(w, &cookie)

然后我想要得到它

func f2(w http.ResponseWriter, r *http.Request) {
...
cookie, err := r.Cookie("token")
fmt.Println(cookie.Value)
fmt.Println(cookie.Expires)

输出

valid_token_string
0001-01-01 00:00:00 +0000 UTC

我设置的值相同,但Expires为空。 为什么呢?

2 个答案:

答案 0 :(得分:10)

这就是HTTP的工作原理; expires属性仅与Set-Cookie响应头一起发送,而不是与Cookie请求头一起发送。 Cookie请求标头仅包含Cookie的名称和值,而不包含任何其他元数据。

答案 1 :(得分:-1)

如果要查询到期时间,则应将其作为其他Cookie来处理。