>백엔드 개발 >Golang >Go의 net/http 패키지를 사용하여 쿠키를 올바르게 설정하려면 어떻게 해야 합니까?

Go의 net/http 패키지를 사용하여 쿠키를 올바르게 설정하려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-10 04:43:18761검색

How Can I Correctly Set Cookies Using Go's net/http Package?

서버에서 Net/HTTP로 쿠키 설정

이 문서에서는 net/http 패키지를 사용하여 Go에서 쿠키를 설정하는 문제를 다룹니다. 어려움에 직면했을 때 온라인 검색에 의지했지만 만족스럽지 못한 결과를 얻었을 수도 있습니다.

귀하가 제공한 코드를 자세히 살펴보겠습니다.

package main

import (
    "io"
    "net/http"
    "time"
)

func indexHandler(w http.ResponseWriter, req *http.Request) {
    expire := time.Now().AddDate(0, 0, 1)
    cookie := http.Cookie{"test", "tcookie", "/", "www.domain.com", expire, expire.Format(time.UnixDate), 86400, true, true, "test=tcookie", []string{"test=tcookie"}}
    req.AddCookie(&cookie)
    io.WriteString(w, "Hello world!")
}

func main() {
    http.HandleFunc("/", indexHandler)
    http.ListenAndServe(":80", nil)
}

귀하가 받은 응답에 강조 표시된 대로 응답이 아닌 요청에 쿠키를 설정하십시오. 이를 위해 net/http는 SetCookie라는 메소드를 제공합니다.

func SetCookie(w ResponseWriter, cookie *Cookie)

쿠키를 설정하려면 다음과 같이 SetCookie 함수를 사용해야 합니다.

func indexHandler(w http.ResponseWriter, req *http.Request) {
    expire := time.Now().AddDate(0, 0, 1)
    cookie := http.Cookie{
        Name:    "test",
        Value:   "tcookie",
        Path:    "/",
        Domain:  "www.domain.com",
        Expires: expire,
        MaxAge:  86400, // duration in seconds.
        Secure:  true,
        HttpOnly: true,
    }
    http.SetCookie(w, &cookie)
    io.WriteString(w, "Hello world!")
}

쿠키를 설정하여 응답을 받으면 브라우저는 쿠키를 수신하고 그에 따라 저장합니다. 이를 통해 사용자 세션을 추적하고 웹 애플리케이션에서 개인화된 경험을 제공할 수 있습니다.

위 내용은 Go의 net/http 패키지를 사용하여 쿠키를 올바르게 설정하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.