diff --git a/CHANGELOG.md b/CHANGELOG.md index 826440f..266d618 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # 更新日志 +25w06b +--- +- PRE-RELEASE: 此版本是改进验证版本,普通用户请勿使用; +- CHANGE: Remove `Conection: Upgrade` header, which is not currently supported by some web server configurations. + 25w06a --- - PRE-RELEASE: 此版本是改进验证版本,普通用户请勿使用; diff --git a/DEV-VERSION b/DEV-VERSION index 874c799..0be6ebf 100644 --- a/DEV-VERSION +++ b/DEV-VERSION @@ -1 +1 @@ -25w06a \ No newline at end of file +25w06b \ No newline at end of file diff --git a/proxy/chunkreq.go b/proxy/chunkreq.go index 9a56268..540ef77 100644 --- a/proxy/chunkreq.go +++ b/proxy/chunkreq.go @@ -35,10 +35,14 @@ func ChunkedProxyRequest(c *gin.Context, u string, cfg *config.Config, mode stri } setRequestHeaders(c, headReq) // 删除Conection Upgrade头, 避免与HTTP/2冲突(检查是否存在Upgrade头) - if headReq.Header.Get("Connection") == "Upgrade" { - headReq.Header.Del("Connection") - } + removeWSHeader(headReq) AuthPassThrough(c, cfg, headReq) + // 打印请求Header(for debug) + for key, values := range headReq.Header { + for _, value := range values { + fmt.Printf("%s: %s\n", key, value) + } + } headResp, err := client.Do(headReq) if err != nil { @@ -70,10 +74,14 @@ func ChunkedProxyRequest(c *gin.Context, u string, cfg *config.Config, mode stri req.Header.Set("Transfer-Encoding", "chunked") // 确保设置分块传输编码 setRequestHeaders(c, req) // 删除Conection Upgrade头, 避免与HTTP/2冲突(检查是否存在Upgrade头) - if req.Header.Get("Connection") == "Upgrade" { - req.Header.Del("Connection") - } + removeWSHeader(req) AuthPassThrough(c, cfg, req) + // 打印请求Header(for debug) + for key, values := range req.Header { + for _, value := range values { + fmt.Printf("%s: %s\n", key, value) + } + } resp, err := client.Do(req) if err != nil { diff --git a/proxy/reqheader.go b/proxy/reqheader.go index e51b261..07525d0 100644 --- a/proxy/reqheader.go +++ b/proxy/reqheader.go @@ -14,3 +14,8 @@ func setRequestHeaders(c *gin.Context, req *http.Request) { } } } + +func removeWSHeader(req *http.Request) { + req.Header.Del("Upgrade") + req.Header.Del("Connection") +}