使用golang的标准库搭建网站--5.处理COOKIE
2015-12-13 13:14
706 查看
合理的使用cookie可以极大的提高网站的用户体验,这一篇文章主要来讨论一下,go中是如何处理cookie的。
运行一下,在浏览器中查看请求头,如下图:
cookie已经被成功设置.
需要注意的是r.Cookie(“username”)并不会直接返回username对应的字符串类型的值
而是返回一个新的cookie struct,用来保存username对应的值
现在将这两步操作合并到一起,写一个完整的处理cookie的示例:
运行一下,我们来运行一下看一下效果:
第一次访问:
第二次访问
声明
Go语言中通过net/http包中的SetCookie来设置://设置cookie的方法声明 http.SetCookie(w ResponseWriter, cookie *Cookie) //Cookie的声明 type Cookie struct { Name string Value string Path string Domain string Expires time.Time RawExpires string // MaxAge=0 means no 'Max-Age' attribute specified. // MaxAge<0 means delete cookie now, equivalently 'Max-Age: 0' // MaxAge>0 means Max-Age attribute present and given in seconds MaxAge int Secure bool HttpOnly bool Raw string Unparsed []string // Raw text of unparsed attribute-value pairs }
设置cookie的方法(写在Index方法中)
tNow := time.Now() cookie := http.Cookie{Name: "username", Value: "BCL", Expires: tNow.AddDate(1, 0, 0)} http.SetCookie(w, &cookie)
运行一下,在浏览器中查看请求头,如下图:
cookie已经被成功设置.
获取cookie的方法
获得cookie的方法也很简单:username, err := r.Cookie("username")
需要注意的是r.Cookie(“username”)并不会直接返回username对应的字符串类型的值
而是返回一个新的cookie struct,用来保存username对应的值
现在将这两步操作合并到一起,写一个完整的处理cookie的示例:
//读取cookie,并做出相应的反馈 username, err := r.Cookie("username") fmt.Println(username, err) if err != nil { fmt.Println("No Cookie", err) } //判断是否已经设置了cookie if username == nil { //设置cookie tNow := time.Now() //设置cookie,有效期为一年 cookie := http.Cookie{Name: "username", Value: "BCL", Expires: tNow.AddDate(1, 0, 0)} http.SetCookie(w, &cookie) } else { data["visited"] = "欢迎回来 " + username.Value }
运行一下,我们来运行一下看一下效果:
第一次访问:
第二次访问
相关文章推荐
- Go 语言 Channel 实现原理精要
- Go语言将支持Android
- cookie的secure属性详解
- 浏览器 cookie 限制
- 浅谈COOKIE和SESSION区别
- 深入解析Session是否必须依赖Cookie
- 新手菜鸟必读:session与cookie的区别
- php实现通过cookie换肤的方法
- C#中Cookie之存储对象
- C#基于WebBrowser获取cookie的实现方法
- ASP.NET Cookie 操作实现
- php中cookie的作用域
- 写入cookie的JavaScript代码库 cookieLibrary.js
- ie7下利用ajax跨域盗取cookie的解决办法
- JS使用cookie实现DIV提示框只显示一次的方法
- js 通过cookie实现刷新不变化树形菜单
- 详谈javascript中的cookie
- 不要在cookie中使用特殊字符的原因分析
- cookie在javascript中的使用技巧以及隐私在服务器端的设置