[go] Go 언어를 사용한 고성능 웹 서버의 쿠키 처리 방법
인터넷 사용자의 이용 환경을 저장하고 관리하기 위해 쿠키 처리는 웹 개발에서 중요한 부분입니다. Go 언어는 빠른 성능과 간결한 문법으로 유명한데, 이 언어를 사용하여 고성능 웹 서버를 개발할 때 쿠키를 어떻게 처리할 수 있는지 알아봅시다.
쿠키 생성과 설정
package main
import (
"net/http"
)
func main() {
http.HandleFunc("/setCookie", func(w http.ResponseWriter, r *http.Request) {
cookie := http.Cookie{
Name: "username",
Value: "john",
Path: "/",
MaxAge: 86400,
}
http.SetCookie(w, &cookie)
})
http.ListenAndServe(":8080", nil)
}
위의 예제는 “/setCookie” 엔드포인트에 접속할 경우 “username”이라는 이름의 쿠키를 생성하고, 이를 HTTP 응답 헤더에 포함하여 클라이언트로 전송합니다. 또한 ‘MaxAge’ 속성을 사용하여 쿠키의 유효 기간을 설정하였습니다.
쿠키 가져오기
package main
import (
"net/http"
)
func main() {
http.HandleFunc("/getCookie", func(w http.ResponseWriter, r *http.Request) {
cookie, err := r.Cookie("username")
if err != nil {
// 쿠키가 존재하지 않음
} else {
// 쿠키 사용
}
})
http.ListenAndServe(":8080", nil)
}
“/getCookie” 엔드포인트로의 요청에서는 클라이언트로부터 전송된 “username” 쿠키를 가져와서 사용할 수 있습니다.
쿠키 삭제
package main
import (
"net/http"
)
func main() {
http.HandleFunc("/deleteCookie", func(w http.ResponseWriter, r *http.Request) {
cookie := http.Cookie{
Name: "username",
Value: "",
Path: "/",
MaxAge: -1,
}
http.SetCookie(w, &cookie)
})
http.ListenAndServe(":8080", nil)
}
클라이언트의 쿠키를 삭제하려면, 같은 이름의 빈 값을 가지는 쿠키를 생성하고 ‘MaxAge’ 속성을 음수로 설정하여 유효 시간을 과거로 만들면 됩니다.
이처럼 Go 언어를 사용하여 간단하게 쿠키를 처리할 수 있으며, 이를 통해 다양한 웹 어플리케이션을 개발할 수 있습니다.