http - 无法在golang中获取cookie过期时间

标签 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

Value 与我设置的相同,但 Expires 为空。 为什么?

最佳答案

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

关于http - 无法在golang中获取cookie过期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29595154/

相关文章:

http - HTTP2 草案中使用的缩写词

java - 在 Android 设备上使用 HTTP Post 将数据放在 google app engine blobstore

c# - 如何检查 cookie 容器中是否有任何 cookie 过期?

parallel-processing - goroutine 的最小工作量

go - 如何在 golang 中初始化指向指针的指针?

Python-请求关闭 http 连接

cookies - 如何保护Web应用程序免受cookie窃取攻击?

java - 如何在filter Rest api jersey中获取cookie

go - 如何提取当前本地时间偏移的值?

python - 当服务器执行耗时的操作时是否应该保留 HTTP 请求?或者放弃这个请求?