Функция http.SetCookie
Функция http.SetCookie добавляет заголовок Set-Cookie
к HTTP-ответу, чтобы установить cookie в браузере клиента.
Первый параметр принимает http.ResponseWriter - объект
для формирования ответа. Второй параметр принимает
указатель на структуру http.Cookie, содержащую
имя и значение cookie, а также дополнительные атрибуты.
Синтаксис
http.SetCookie(w http.ResponseWriter, cookie *http.Cookie)
Пример
Давайте установим простой cookie с именем "username"
и значением "gopher":
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/set", func(w http.ResponseWriter, r *http.Request) {
cookie := &http.Cookie{
Name: "username",
Value: "gopher",
}
http.SetCookie(w, cookie)
fmt.Fprintln(w, "Cookie установлен")
})
http.ListenAndServe(":8080", nil)
}
После вызова http.SetCookie в заголовках ответа
появится строка:
Set-Cookie: username=gopher
Пример
Давайте установим cookie с дополнительными атрибутами
MaxAge и HttpOnly:
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/set", func(w http.ResponseWriter, r *http.Request) {
cookie := &http.Cookie{
Name: "session",
Value: "abc123",
Path: "/",
MaxAge: 3600,
HttpOnly: true,
Secure: true,
}
http.SetCookie(w, cookie)
fmt.Fprintln(w, "Сессия создана")
})
http.ListenAndServe(":8080", nil)
}
Результат выполнения кода:
"Set-Cookie: session=abc123; Path=/; Max-Age=3600; HttpOnly; Secure"
Пример
Давайте установим несколько cookie в одном ответе:
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/set", func(w http.ResponseWriter, r *http.Request) {
cookie1 := &http.Cookie{
Name: "lang",
Value: "ru",
}
cookie2 := &http.Cookie{
Name: "theme",
Value: "dark",
}
http.SetCookie(w, cookie1)
http.SetCookie(w, cookie2)
fmt.Fprintln(w, "Несколько cookie установлены")
})
http.ListenAndServe(":8080", nil)
}
Результат выполнения кода:
"Set-Cookie: lang=ru"
"Set-Cookie: theme=dark"
Смотрите также
-
функцию
Request.Cookie,
которая возвращает cookie по имени из запроса -
функцию
Request.Cookies,
которая возвращает все cookie из запроса -
метод
Request.AddCookie,
который добавляет cookie к запросу -
структуру
http.Cookie,
которая представляет cookie в HTTP