Golang中国

在下想问一个有关cookie的问题,通过以下代码设置cookie:
http.SetCookie(w, &ncookie)
在浏览器中也能看到cookie:

,但是服务器获取cookie的时候除了name和value的值是正确的之外其他都是错的,

设置cookie代码:

    ncookie := http.Cookie{

            Name: "sessionid",
            Value: url.QueryEscape(sid), 
            HttpOnly: true, 
            MaxAge: 3000
    }
    http.SetCookie(w, &ncookie)

读取cookie代码:

    cookie, err :=r.Cookie("sessionid")

输出cookie代码:

    fmt.Println("httponly", cookie.HttpOnly)
    fmt.Println("value", cookie.Value)
    fmt.Println("name", cookie.Name)
    fmt.Println("maxage", cookie.MaxAge)

输出结果

    httponly false(错误,应该是true)
    value         YeipZdD4I1dZK_bkVNk348ngitIropubZvywiHuBFG0%3D
    name sessionid
    maxage 0(错误,应该是3000)

想问问可能的原因是什么?


moonfoolish 于 2016-12-05 16:06 修改
2 回复
heimeil
#1 heimeil • 2016-12-05 20:17

httponly和maxage是服务器向浏览器单向指定的行为参数,后面浏览器发送到服务端并不会带上这些参数,最后只有Name和Value。

moonfoolish
#2 moonfoolish • 2016-12-05 23:48

是这样啊,有相关的资料推荐下吗?我在google 或者百度都没有搜到httponly 是单向传递的相关信息
@heimeil

需要 登录 后方可回复, 如果你还没有账号你可以 注册 一个帐号。