包内全局的Request和Response的问题
2. 问题描述?
并发请求的时候,session
包内的全局Request
和Response
的内容会被覆盖的吗?
如果覆盖了,那么会话不就乱了么。
我用 Edge 和 FF 浏览器测试了一下:
package main
import (
"fmt"
"net/http"
"time"
)
// Request 用以获取会话
var Request *http.Request
// Response 用以写入会话
var Response http.ResponseWriter
var Name string
func main() {
http.HandleFunc("/", handlerFunc)
http.ListenAndServe(":3000", nil)
}
func handlerFunc(w http.ResponseWriter, r *http.Request) {
Request = r
Response = w
for {
time.Sleep(3 * time.Second)
fmt.Println("============", Request.Header.Get("User-Agent"))
}
}
3. 您期望得到的结果?
如果不影响的话,输出的UserAgent
应该是类似轮流出现的。
4. 您实际得到的结果?
实际的结果却是,产生了互相的覆盖问题,第二个请求覆盖了第一个的Request
:
推荐文章: