我们都知道,现在的互联网都是可以交互的,都是可以记录用户信息的。比如我的浏览记录,我的订单,我的个人信息。这些都是可以保存到服务器上的。那么服务器是如何识别每个用户的呢?答案就是session.通过session我们可以识别是哪个用户访问了网站,我们就可以返回给他指定的信息。
那么session的原理是什么?它是怎么实现的呢?
简单来说,session就是一个记录,一个记录用户标识的记录。那么用户是如何告知我们这个记录的呢,一般情况就是通过cookie.将cookie发送给服务器,服务器进行解析,就会识别相应的记录,然后在session记录表中(可以是文件或者数据库)找到对应信息。
在go语言中我们使用session也非常的方便。
我们只需要引入gorilla这个包就可以
import(
"github.com/gorilla/sessions"
)
这样我们就可以使用session了。
var store = sessions.NewCookieStore([]byte("test"))
handleSetSession(w http.ResponseWriter, r *http.Request) {
session, err := store.Get(r, )
err != nil {
http.Error(w, err.Error(), http.)
}
session.Values[] = session.Values[] = session.Save(r, w)
}
我们先通过newcookiestore方法声明一个session的空间。然后通过store.get方法设置获取session变量。然后调用session.Values["name"] = "tom" session.Save方法就可以将session保存到服务器上。
newCookieStore这里保存的是session的秘钥,一般都是通过配置文件获取。
var store = sessions.NewCookieStore([]byte(os.Getenv("SESSION_KEY")))
store.get(r,"menghuiguli")
这里设置的才是session的名字