• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
孙龙 程序员
少时总觉为人易,华年方知立业难
博客园    首页    新随笔    联系   管理    订阅  订阅
Go语言cookie的基本操作

cookie数据结构介绍

 

cookie数据结构介绍

a. Expires,cookie过期时间,使用绝对时间。比如2018/10/10 10:10:10
b. MaxAge,cookie过期时间,使用相对时间,比如300s
c. Secure属性,是否需要安全传输,为true时只有https才会传输该cookie
Go语言cookie的基本操作
d. HttpOnly属性,为true时,不能通过js读取该cookie的值

 

golang读取cookie

a. 读取单个cookie, http.Request.Cookie(key string)

b. 读取所有cookie, http.Request.Cookies()

 

golang设置cookie

a. cookie := http.Cookie{Name: "username", Value: "astaxie", Expires: expiration}
b. http.SetCookie(w, &cookie)

 

package main

import (
    "fmt"
    "net/http"
)

func indexHandle(w http.ResponseWriter, r *http.Request) {

    /*cookies := r.Cookies()
    for index, cookie := range cookies {
        fmt.Printf("index:%d cookie:%#v\n", index, cookie)
    }*/
    c, err := r.Cookie("sessionid")
    fmt.Printf("cookie:%#v, err:%v\n", c, err)

    cookie := &http.Cookie{
        Name:   "sessionid",
        Value:  "lkjsdfklsjfklsfdsfdjslf",
        MaxAge: 3600,
        Domain: "localhost",
        Path:   "/",
    }

    http.SetCookie(w, cookie)

    //在具体数据返回之前设置cookie,否则cookie种不上
    w.Write([]byte("hello"))
}

func main() {
    http.HandleFunc("/", indexHandle)
    http.ListenAndServe(":9090", nil)
}

 

本文来自博客园,作者:孙龙-程序员,转载请注明原文链接:https://www.cnblogs.com/sunlong88/p/11963111.html

posted on 2019-11-30 16:50  孙龙-程序员  阅读(3918)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3