Cookie 的定义
- HTTP是无状态协议,服务器不能记录浏览器的访问状态,也就是说服务器不能区分两次请求是否由同一个客户端发出
- Cookie就是服务器保存在浏览器上的一段信息。浏览器有了Cookie之后,每次向服务器发送请求时都会将该信息发送给服务器,服务器收到请求后,就可以根据该信息处理请求
- Cookie 由服务器创建,并发送给浏览器,最终由浏览器保存
Cookie的用途
- 保持用户登录状态
- 电商的购物车
Cookie的设置
r.GET("/cookie",func(c *gin.Context){
cookie,err := c.Cookie("key_cookie")
if err!=nil{
cookie = "Not Set"
//给客户端设置cookie
//maxAge int 单位为秒
//path cookie所在目录
//domain 域名
//secure bool 是否只能通过https访问
//httpOnly bool 是否允许别人通过Js获取自己的cookie
c.SetCookie("key_cookie","value_cookie",60,"/","127.0.0.1",false,true)
}
fmt.Println("Cookie的值是:"+cookie)
})
Cookie 的缺点
- 不安全、明文
- 增加带宽消耗
- 可以被禁用
- cookie 有上限
Session 的定义
Session可以弥补Cookie的不足,Session必须依赖Cookie才能使用,生成一个SessionId放在Cookie里传给客户端就可以