当前位置: 首页 > 工具软件 > gonet2 > 使用案例 >

Go 学习笔记四:net/http包中Cookie 的设置和获取,Session的设置和获取

冯德佑
2023-12-01

1. 前言:(Cookie里的信息只保留在浏览器端)

	Http协议是无状态的,所以要用到Cookie 来保存信息
	 Cookie 是保存在浏览器端
	 Cookie :
			
			1、浏览器第一次向服务器发起请求,服务器创建Cookie (Cookie是服务端创建的)
			2、服务器将创建的Cookie ,通过Response.Header (响应头),响应给浏览器。
			3、服务器在,Handler(处理器)函数中,通过Request.Header (请求头)获取 Cookie
  1. 在服务器端创建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)
}
  1. 在服务器端获取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)
}
 类似资料: