亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Golang > 正文

Go語言Cookie用法分析

2020-04-01 19:06:33
字體:
來源:轉載
供稿:網友

本文實例講述了Go語言Cookie用法。分享給大家供大家參考,具體如下:

web 開發免不了要和 cookie 打交道。Go 的 http 庫也提供了 cookie 的相關操作。

復制代碼 代碼如下:
type Cookie struct {
  Name       string
  Value      string
  Path       string
  Domain     string
  Expires    time.Time
  RawExpires string
  MaxAge     int
  Secure     bool
  HttpOnly   bool
  Raw        string
  Unparsed   []string
}

 

Name 字段為 cookie 的名字,Value 是其值,剩下的 Path 和 Domain 則是 cookie 的存儲的范圍。Expires 是 cookie 的過期時間,如果不設置,那么這是一個 session 型的 cookie,即瀏覽器會話有用,一旦關閉瀏覽器,cookie 隨即會被刪除。

設置 Cookie

cookie 是 header 一項內容,因此可以使用 reponse 的 Header 方法設置 cookie。

復制代碼 代碼如下:
func setCookieHandler(w http.ResponseWriter, r *http.Request) {
    c1 := http.Cookie{
        Name: "first_cookie",
        Value: "vanyar",
        HttpOnly: true,
    }
    c2 := http.Cookie{
        Name: "second_cookie",
        Value: "noldor",
        HttpOnly:true,
    }
    w.Header().Set("Set-Cookie", c1.String())
    w.Header().Add("Set-Cookie", c2.String())
}

 

Go語言,Cookie

這里也可以測試驗證 Set 和 Add 兩個方法的差別。當然,和文件上傳類似,Go 也提供了常用的工具函數。

復制代碼 代碼如下:
http.SetCookie(w, &c1)
http.SetCookie(w, &c2)

 

http 的 SetCookie 方法也可以設置 cookie,就不需要關系 Set 和 Add 的先后順序了,當然第二個參數是一個 Cookie 的指針對象。設置了 cookie,接下來就是需要讀 cookie。

讀取 Cookie

讀取 cookie 的方式也有很多,cookie 封裝在header中,當然可以通過 header 方法處理。

復制代碼 代碼如下:
func getCookieHandler(w http.ResponseWriter, r *http.Request) {
    h := r.Header["Cookie"]
    fmt.Fprintln(w, h)
}

 

不使用 Header 方法,也可以使用 Request 的方法:

復制代碼 代碼如下:
func getCookieHandler(w http.ResponseWriter, r *http.Request) {
    c1, err := r.Cookie("first_cookie")
    if err != nil{
        fmt.Fprintln(w, "Cannot get cookie")
    }
    cs := r.Cookies()
    fmt.Fprintln(w, c1)
    fmt.Fprintln(w, cs)
}

 

訪問的時候可以發現,r.Cookie 返回了對于 key 的鍵值對,而 r.Cookies 則返回了所有 cookie 的 key 的鍵值對值。

Cookie 與 消息

cookie 的作用很多,通常記錄客戶端的一些信息,用來做用戶的登錄驗證?,F在我們需要使用 cookie 來做一個小特性---消息。通常 web 請求發出后,response 返回數據,也可以設置一些消息用來指引用戶。

復制代碼 代碼如下:
func setMessageHandler(w http.ResponseWriter, r *http.Request) {
    msg := []byte("Hello World")
    c := http.Cookie{
        Name: "flash",
        Value:base64.URLEncoding.EncodeToString(msg),
    }
    http.SetCookie(w, &c)
}
func getMessageHandler(w http.ResponseWriter, r *http.Request) {
    c, err := r.Cookie("flash")
    if err != nil {
        if err == http.ErrNoCookie {
            fmt.Fprintln(w, "No message found")
        }
    } else {
        rc := http.Cookie{
            Name: "flash",
            MaxAge: -1,
            Expires:time.Unix(1, 0),
        }
        http.SetCookie(w, &rc)
        val, _ := base64.URLEncoding.DecodeString(c.Value)
        fmt.Fprintln(w, string(val))
    }
}

 

setMessageHandler 函數很簡單,就是創建一個 cookie 實例,然后把消息寫入到 cookie,然后再返回給客戶端。

getMessageHandler 首先會讀取 key 為 flash 的 cookie,如果沒讀到內容,則表示消息不存在,否則就創建另外一個 cookie,設置其過期時間這里等于清除 cookie。然后把讀取出來的 message 返回給客戶端。完成消息通信。

總結

我們討論了 Go 中 cookie 的基本應用。現在的 web 開發中,人們越來越重視網絡安全,因此 cookie 的安全也成為用戶關心的內容。Go 原生的 cookie 封裝比較簡單。Go 的社區卻開發了很多輪子,實現了secure cookie,例如 gorilla/securecookie 庫。實際開發中,可能會借助一些三方的庫或包來完成功能。

希望本文所述對大家Go語言程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩一级黄色av| 午夜精品一区二区三区在线视| 奇米一区二区三区四区久久| 欧美性猛交xxxx乱大交3| 成人h猎奇视频网站| 欧美激情免费视频| 日韩国产在线播放| 国产成人jvid在线播放| 欧美亚洲国产日本| 亚洲第一页自拍| 亚洲一区二区三区在线免费观看| 欧美成人在线免费视频| 久久中文精品视频| 中文字幕精品www乱入免费视频| 亚洲成人av片在线观看| 亚洲91精品在线观看| 亚洲精品久久久一区二区三区| 狠狠色香婷婷久久亚洲精品| 亚洲精品91美女久久久久久久| 黑人巨大精品欧美一区免费视频| 国产精品日韩欧美| 日韩三级成人av网| 不卡毛片在线看| 欧美日韩成人黄色| 久久视频免费观看| 欧美黑人性视频| 亚洲自拍偷拍第一页| 国产噜噜噜噜噜久久久久久久久| 51色欧美片视频在线观看| 一区二区三区亚洲| 性欧美暴力猛交69hd| 色爱av美腿丝袜综合粉嫩av| 欧美激情精品久久久久久黑人| 欧美激情在线观看| 亚洲欧美国内爽妇网| 国产91在线高潮白浆在线观看| 国产裸体写真av一区二区| 亚洲综合在线播放| 欧美高清videos高潮hd| 夜夜嗨av一区二区三区四区| 国产欧美精品在线播放| 成人在线精品视频| 夜夜狂射影院欧美极品| 亚洲人成在线观看网站高清| 久久69精品久久久久久久电影好| 亚洲乱码国产乱码精品精天堂| 久热精品视频在线观看| 亚洲第一福利在线观看| 午夜欧美大片免费观看| 日韩亚洲欧美中文高清在线| 欧美日韩一二三四五区| 国产91精品黑色丝袜高跟鞋| 亚洲精品电影网站| 亚洲欧美在线一区二区| 日本19禁啪啪免费观看www| 亚洲人在线观看| 永久免费精品影视网站| 亚洲美女性视频| 亚洲乱码国产乱码精品精| 欧美另类精品xxxx孕妇| 精品亚洲夜色av98在线观看| 福利视频第一区| 一区二区三区无码高清视频| 日本不卡视频在线播放| 2025国产精品视频| 欧美精品免费看| 欧美性视频精品| 久久精品视频中文字幕| 538国产精品一区二区免费视频| 午夜免费久久久久| 欧美日韩在线看| 日韩av网站导航| 久久久久久久久亚洲| 国模精品视频一区二区三区| 日韩av中文字幕在线播放| 国产精品久久久久久久久借妻| 国产精品欧美在线| 中文字幕在线日韩| 亚洲精品美女久久久久| 亚洲精品美女视频| 欧美激情亚洲激情| 高清亚洲成在人网站天堂| 国产精品久久久久久久久久新婚| 国产成人精品综合久久久| 欧美国产日韩中文字幕在线| 久久国产精品久久国产精品| 91久久国产精品| 欧美电影第一页| 国产精品久久久久久久一区探花| 色妞在线综合亚洲欧美| 日韩精品视频中文在线观看| 日韩精品福利网站| 96国产粉嫩美女| 久久久久久久久久国产精品| 国产成人短视频| 91大神在线播放精品| 国产视频欧美视频| 久久久精品美女| 日韩免费看的电影电视剧大全| 亚洲热线99精品视频| 国产亚洲xxx| 国产精品视频资源| 国产精品久久久久秋霞鲁丝| 日韩欧美精品网址| 久久这里有精品| 日韩高清电影好看的电视剧电影| 九九视频这里只有精品| 538国产精品一区二区在线| 一级做a爰片久久毛片美女图片| 欧美激情视频在线观看| 午夜精品99久久免费| 91亚洲国产成人精品性色| 在线播放国产一区二区三区| 97在线免费视频| 亚洲精品女av网站| 亚洲欧美国产视频| 国产亚洲一级高清| 国产精品久久久久久av| 欧美日韩国产成人高清视频| 国产精品一区二区女厕厕| 日韩欧美在线视频日韩欧美在线视频| 久久精品这里热有精品| 亚洲成年人影院在线| 亚洲成人免费网站| 国产精品视频在线观看| 国产精品美女久久久免费| 日韩网站在线观看| 久久综合国产精品台湾中文娱乐网| 亚洲福利视频久久| 久久91精品国产91久久久| 国产精品日韩欧美大师| 欧美午夜www高清视频| www日韩中文字幕在线看| 97精品免费视频| 亚洲成人免费在线视频| 亚洲欧美制服第一页| 欧美大片欧美激情性色a∨久久| 欧美国产精品va在线观看| 国产精品久久久久久久午夜| 亚洲一区久久久| 久久精品久久久久久国产 免费| 国产91精品久久久久久| 美日韩精品视频免费看| 欧美日韩精品在线| 久久精品国产一区| 国产亚洲精品美女| 97视频免费在线看| 欧美精品久久一区二区| 538国产精品一区二区免费视频| 亚洲国产毛片完整版| 欧美激情亚洲另类| 亚洲国产精品999| 国产精品网站大全| 日韩精品免费在线视频| 日韩中文字幕国产| 久久手机免费视频| 81精品国产乱码久久久久久| 日韩精品在线电影| 国产ts人妖一区二区三区| 欧美日韩在线看| 日韩av最新在线观看| 欧美性受xxxx白人性爽| 国产午夜精品免费一区二区三区| 国产拍精品一二三|