1. 前言:(Cookie里的信息只保留在浏览器端)
Http协议是无状态的,所以要用到Cookie 来保存信息
Cookie 是保存在浏览器端
Cookie :
1、浏览器第一次向服务器发起请求,服务器创建Cookie (Cookie是服务端创建的)
2、服务器将创建的Cookie ,通过Response.Header (响应头),响应给浏览器。
3、服务器在,Handler(处理器)函数中,通过Request.Header (请求头)获取 Cookie
- 在服务器端创建Cookie
package main
import (
"net/http"
"fmt"
)
func main(){
//创建Cookie 的处理器 (handler)
http.HandleFunc("/setCookie",func(w http.ResponseWriter, r *http.Request){
//创建Cookie
cookie := &http.Cookie{
Name: "user",
Value: "李四",
}
cookie2 := &http.Cookie{
Name: "emp",
Value: "王五",
}
//第一种 发送方式:
//发送 第一个 Cookie
w.Header().Set("Set-Cookie",cookie.string())
//发送 第二个 Cookie
w.Header().Add("Set-Cookie",cookie2.string())
//第二种 发送方式
http.SetCookie(w,cookie)
http.SetCookie(w,cookie2)
})
//启动服务器,并监听端口
http.ListenAndServe(":8080",nil)
}
- 在服务器端获取Cookie
package main
import(
"net/http"
"fmt"
)
func main(){
//获取Cookie的处理器函数
http.HandleFunc("/getCookie",func(w http.ResponseWriter,r *http.Request){
//通过请求头获取 Cookie
cookies := r.Header["Cookie"]
//简单方法获取 Cookie
cookies2 := r.Cookies()
//获取指定的 Cookie
cookie := r.Cookie("user")
//将cookies 响应给浏览器
fmt.Fprintln(w,cookies)
})
//启动服务器,并监听端口
http.ListenAndServe(":8080",nil)
}