perf: use textproto.TrimString for HTTP header parsing to improve performance

This commit is contained in:
1911860538 2025-06-03 20:16:27 +08:00
parent e4c2a27624
commit 7303932ab2
2 changed files with 4 additions and 2 deletions

3
gin.go
View File

@ -9,6 +9,7 @@ import (
"html/template" "html/template"
"net" "net"
"net/http" "net/http"
"net/textproto"
"os" "os"
"path" "path"
"regexp" "regexp"
@ -475,7 +476,7 @@ func (engine *Engine) validateHeader(header string) (clientIP string, valid bool
} }
items := strings.Split(header, ",") items := strings.Split(header, ",")
for i := len(items) - 1; i >= 0; i-- { for i := len(items) - 1; i >= 0; i-- {
ipStr := strings.TrimSpace(items[i]) ipStr := textproto.TrimString(items[i])
ip := net.ParseIP(ipStr) ip := net.ParseIP(ipStr)
if ip == nil { if ip == nil {
break break

View File

@ -7,6 +7,7 @@ package gin
import ( import (
"encoding/xml" "encoding/xml"
"net/http" "net/http"
"net/textproto"
"os" "os"
"path" "path"
"reflect" "reflect"
@ -107,7 +108,7 @@ func parseAccept(acceptHeader string) []string {
if i := strings.IndexByte(part, ';'); i > 0 { if i := strings.IndexByte(part, ';'); i > 0 {
part = part[:i] part = part[:i]
} }
if part = strings.TrimSpace(part); part != "" { if part = textproto.TrimString(part); part != "" {
out = append(out, part) out = append(out, part)
} }
} }