go web之cookie
精选
原创
©著作权归作者所有:来自51CTO博客作者zzxiaoma的原创作品,请联系作者获取转载授权,否则将追究法律责任
cookie通常分为临时cookie和持久cookie,临时cookie在关闭浏览器的时候就会自动删除,持久cookie有过期时间,只有到了过期时间才会自动删除。cookie的作用主要是在前端存储数据,这样每次发起http请求时,会把客户端的cookie也一起发送到服务器。
package main
import (
"fmt"
"net/http"
)
func setCookie(w http.ResponseWriter, r *http.Request) {
c1 := http.Cookie{
Name: "aa",
Value: "bb",
HttpOnly: true,
}
c2 := http.Cookie{
Name: "cc",
Value: "dd",
HttpOnly: true,
}
w.Header().Set("Set-Cookie", c1.String())
w.Header().Add("Set-Cookie", c2.String())
}
先创建了2个cookie的结构体,第一次通过Set方法设置cookie,第二次通过
Add进行添加第二个cookie。
func getCookie(w http.ResponseWriter, r *http.Request) {
h := r.Header["Cookie"]
fmt.Fprintln(w, h)
c1, err := r.Cookie("aa")
if err != nil {
fmt.Fprintln(w, "no cookie")
}
cs := r.Cookies()
fmt.Fprintln(w, c1)
fmt.Fprintln(w, cs)
}
获取cookie,使用获取头信息Header可以获取所有的cookie,也可以使用
r.Cookie("")获取单个cookie,如果获取的cookie名字不存在会返回错误