我发现现在go的在web开发中的session功能还不是"session"啊..比如网上找到的一些资料.还有beego..都表现得像cookies一样..
session本意就是"会话"..应该是一个会话一个session才对..但现在所有session的表现都是同一浏览器的所有窗口共用一个session..不主动删除session内容的话就一直能读到session的内容(即使你已经关闭且重新打工浏览器)...
求指教..求讨论
不知道你以前学过PHP没有,如果有的话,你就会注意到,PHP每次会话都有一个cookie,叫phpsessionid,这个cookie保存的是session的id,而在服务端,没有任何额外配置的话,是文件形式存储的。也就是说,这个cookie仅仅保存的是一个id,每次会话服务端都会去找到对应的session文件。
如你所说,即使关闭再打开浏览器,依然可以使用session的内容,这是因为这个cookie的过期时间没有设置正确,或者设置过长。你可以尝试把这个cookie的过期时间设置为session,具体可以搜索查看,这样的话,关闭浏览器再打开,这个cookie就过期了,服务器将会重新分配一个。最后说明一下,cookie中存放session内容是不安全的,最多存放session的id,以便服务端在接受请求之后根据id查找对应的session文件,或者redis中的key(如果用redis做session后端的话)。
#1