В языке программирования Go выставление куки связано с использованием пакета "net/http". Для установки куки в Go можно использовать функцию "SetCookie" из этого пакета.
Прежде всего, необходимо импортировать пакет "net/http":
import ( "net/http" )
Затем можно использовать функцию "SetCookie" для установки куки. Она принимает три аргумента: объект "http.ResponseWriter", объект "http.Request" и экземпляр "http.Cookie" для представления куки. Пример:
func setCookieHandler(w http.ResponseWriter, r *http.Request) { cookie := &http.Cookie{ Name: "mycookie", Value: "example", } http.SetCookie(w, cookie) }
В этом примере мы создаём новый объект "http.Cookie", устанавливаем ему имя и значение, а затем используем функцию "SetCookie" для добавления куки в ответ.
Теперь, когда пользователь запрашивает этот обработчик, кука "mycookie" с значением "example" будет установлена и отправлена в браузер пользователя.
Если вы хотите установить дополнительные параметры куки, такие как срок истечения действия, путь, домен или безопасность, можно задать их при создании объекта "http.Cookie". Пример:
func setCookieHandler(w http.ResponseWriter, r *http.Request) { cookie := &http.Cookie{ Name: "mycookie", Value: "example", Expires: time.Now().Add(24 * time.Hour), Path: "/", Domain: "example.com", Secure: true, HttpOnly: true, } http.SetCookie(w, cookie) }
В этом примере мы добавляем время истечения суток (с использованием пакета "time"), указываем путь и домен, устанавливаем безопасную передачу с использованием HTTPS, и устанавливаем атрибут HttpOnly для предотвращения доступа куки из JavaScript.
Наконец, если вы хотите удалить куки, то можно воспользоваться функцией "SetCookie" с передачей пустого значения и отрицательным сроком действия. Пример:
func deleteCookieHandler(w http.ResponseWriter, r *http.Request) { cookie := &http.Cookie{ Name: "mycookie", Value: "", Expires: time.Now().Add(-1 * time.Hour), } http.SetCookie(w, cookie) }
В этом примере мы устанавливаем куку с пустым значением, и указываем время истечения как прошедшее отрицательное значение, что заставляет браузер удалить куку.
Вот и всё! Это основы постановки куки в Go с помощью пакета "net/http". Вы можете дополнительно изучить документацию по пакету для более подробной информации и использования других возможностей.