欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Go語(yǔ)言Cookie用法分析

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

成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于做網(wǎng)站、網(wǎng)站建設(shè)、漢陰網(wǎng)絡(luò)推廣、成都小程序開發(fā)、漢陰網(wǎng)絡(luò)營(yíng)銷、漢陰企業(yè)策劃、漢陰品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供漢陰建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:aaarwkj.com

web 開發(fā)免不了要和 cookie 打交道。Go 的 http 庫(kù)也提供了 cookie 的相關(guān)操作。

復(fù)制代碼 代碼如下:
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 的存儲(chǔ)的范圍。Expires 是 cookie 的過期時(shí)間,如果不設(shè)置,那么這是一個(gè) session 型的 cookie,即瀏覽器會(huì)話有用,一旦關(guān)閉瀏覽器,cookie 隨即會(huì)被刪除。

設(shè)置 Cookie

cookie 是 header 一項(xiàng)內(nèi)容,因此可以使用 reponse 的 Header 方法設(shè)置 cookie。

復(fù)制代碼 代碼如下:
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語(yǔ)言Cookie用法分析

這里也可以測(cè)試驗(yàn)證 Set 和 Add 兩個(gè)方法的差別。當(dāng)然,和文件上傳類似,Go 也提供了常用的工具函數(shù)。

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

http 的 SetCookie 方法也可以設(shè)置 cookie,就不需要關(guān)系 Set 和 Add 的先后順序了,當(dāng)然第二個(gè)參數(shù)是一個(gè) Cookie 的指針對(duì)象。設(shè)置了 cookie,接下來就是需要讀 cookie。

讀取 Cookie

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

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

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

復(fù)制代碼 代碼如下:
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)
}

訪問的時(shí)候可以發(fā)現(xiàn),r.Cookie 返回了對(duì)于 key 的鍵值對(duì),而 r.Cookies 則返回了所有 cookie 的 key 的鍵值對(duì)值。

Cookie 與 消息

cookie 的作用很多,通常記錄客戶端的一些信息,用來做用戶的登錄驗(yàn)證?,F(xiàn)在我們需要使用 cookie 來做一個(gè)小特性---消息。通常 web 請(qǐng)求發(fā)出后,response 返回?cái)?shù)據(jù),也可以設(shè)置一些消息用來指引用戶。

復(fù)制代碼 代碼如下:
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 函數(shù)很簡(jiǎn)單,就是創(chuàng)建一個(gè) cookie 實(shí)例,然后把消息寫入到 cookie,然后再返回給客戶端。

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

總結(jié)

我們討論了 Go 中 cookie 的基本應(yīng)用?,F(xiàn)在的 web 開發(fā)中,人們?cè)絹碓街匾暰W(wǎng)絡(luò)安全,因此 cookie 的安全也成為用戶關(guān)心的內(nèi)容。Go 原生的 cookie 封裝比較簡(jiǎn)單。Go 的社區(qū)卻開發(fā)了很多輪子,實(shí)現(xiàn)了secure cookie,例如 gorilla/securecookie 庫(kù)。實(shí)際開發(fā)中,可能會(huì)借助一些三方的庫(kù)或包來完成功能。

希望本文所述對(duì)大家Go語(yǔ)言程序設(shè)計(jì)有所幫助。

網(wǎng)站標(biāo)題:Go語(yǔ)言Cookie用法分析
文章轉(zhuǎn)載:http://aaarwkj.com/article34/pjcise.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、網(wǎng)站營(yíng)銷品牌網(wǎng)站設(shè)計(jì)、定制網(wǎng)站網(wǎng)站策劃、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司
日本加勒比系列在线视频| 高清中文字幕一区二区三区| 亚洲av一区二区三区色多多| 亚洲欧美韩国日本成人综合| 亚洲另类偷拍校园伦理| 97在线亚洲欧美视频| 国产特级黄片免费观看| 亚洲黄色手机在线网站| 人妻操人人妻中出av| 亚洲女人下体毛茸茸视频| 2020年国产97精品自拍| 国产亚洲超级97免费视频| 亚洲欧美国产另类综合| 国产av综合一区二区三区最新| 91中文字幕国产日韩| 在线观看91精品国产秒播| 永久永久免费黄色一级片| 给我搜一个一级黄色片| 免费视频观看在线一区二区三区| 国产精品综合久久久久久| 日本一区二区日本一区| 精品亚洲在线一区二区| 国产精品免费观看在线国产| 国产免费av剧情演绎| 久久亚洲中文字幕精品熟女一区| 中文字幕三级电影天堂| 亚洲欧洲另类美女久久精品| av人妻熟女少妇蒂亚| 久久久av在线免费观看| 亚洲国产传媒在线观看| 欧美电影剧情av在线| 久久综合激情亚洲欧美专区| 日韩av高清在线播放| 欧美日韩一区二区三区福利| 91九色最新国产在线| 99亚洲综合一区二区三区| 国产二区三区在线播放| 亚洲精品一区二区av| 熟年人妻一区二区三区| 色哟哟亚洲精品在线视频| 人妻中文字幕在线一二区|