Client Hints
User-Agent
{{.Req.UserAgent}}
Referer
{{if .Req.Referer}}{{.Req.Referer}}{{else}}—{{end}}
Accept
{{.Req.Header.Get "Accept"}}
Accept-Language
{{.Req.Header.Get "Accept-Language"}}
Accept-Encoding
{{.Req.Header.Get "Accept-Encoding"}}
Sec-CH-UA
{{if .Req.Header.Get "Sec-Ch-Ua"}}{{.Req.Header.Get "Sec-Ch-Ua"}}{{else}}—{{end}}
Sec-CH-UA-Platform
{{if .Req.Header.Get "Sec-Ch-Ua-Platform"}}{{.Req.Header.Get "Sec-Ch-Ua-Platform"}}{{else}}—{{end}}
Sec-CH-UA-Mobile
{{if .Req.Header.Get "Sec-Ch-Ua-Mobile"}}{{.Req.Header.Get "Sec-Ch-Ua-Mobile"}}{{else}}—{{end}}
Sec-CH-UA-Arch
{{if .Req.Header.Get "Sec-Ch-Ua-Arch"}}{{.Req.Header.Get "Sec-Ch-Ua-Arch"}}{{else}}—{{end}}
Sec-CH-UA-Bitness
{{if .Req.Header.Get "Sec-Ch-Ua-Bitness"}}{{.Req.Header.Get "Sec-Ch-Ua-Bitness"}}{{else}}—{{end}}
Sec-CH-UA-Model
{{if .Req.Header.Get "Sec-Ch-Ua-Model"}}{{.Req.Header.Get "Sec-Ch-Ua-Model"}}{{else}}—{{end}}
Sec-CH-UA-Full-Version
{{if .Req.Header.Get "Sec-Ch-Ua-Full-Version"}}{{.Req.Header.Get "Sec-Ch-Ua-Full-Version"}}{{else}}—{{end}}
Upgrade-Insecure-Requests
{{if .Req.Header.Get "Upgrade-Insecure-Requests"}}{{.Req.Header.Get "Upgrade-Insecure-Requests"}}{{else}}—{{end}}
DNT
{{if .Req.Header.Get "Dnt"}}{{.Req.Header.Get "Dnt"}}{{else}}—{{end}}
Sec-Fetch-Dest
{{.Req.Header.Get "Sec-Fetch-Dest"}}
Sec-Fetch-Mode
{{.Req.Header.Get "Sec-Fetch-Mode"}}
Sec-Fetch-Site
{{.Req.Header.Get "Sec-Fetch-Site"}}
TLS
Version
{{placeholder "http.request.tls.version"}}
Cipher Suite
{{placeholder "http.request.tls.cipher_suite"}}
ALPN
{{.Req.TLS.NegotiatedProtocol}}
SNI
{{.Req.TLS.ServerName}}
Session Resumed
{{.Req.TLS.DidResume}}
ECH
{{.Req.TLS.ECHAccepted}}
{{if .Req.TLS.PeerCertificates}}
Client Cert
{{placeholder "http.request.tls.client.subject"}}
Issuer
{{placeholder "http.request.tls.client.issuer"}}
Serial
{{placeholder "http.request.tls.client.serial"}}
Fingerprint
{{placeholder "http.request.tls.client.fingerprint"}}
{{if placeholder "http.request.tls.client.san.dns_names"}}
SAN DNS
{{placeholder "http.request.tls.client.san.dns_names"}}
{{end}}
{{else}}
{{end}}
Proxy Headers
X-Forwarded-For
{{if .Req.Header.Get "X-Forwarded-For"}}{{.Req.Header.Get "X-Forwarded-For"}}{{else}}—{{end}}
X-Forwarded-Proto
{{if .Req.Header.Get "X-Forwarded-Proto"}}{{.Req.Header.Get "X-Forwarded-Proto"}}{{else}}—{{end}}
X-Forwarded-Host
{{if .Req.Header.Get "X-Forwarded-Host"}}{{.Req.Header.Get "X-Forwarded-Host"}}{{else}}—{{end}}
X-Real-IP
{{if .Req.Header.Get "X-Real-IP"}}{{.Req.Header.Get "X-Real-IP"}}{{else}}—{{end}}
True-Client-IP
{{if .Req.Header.Get "True-Client-Ip"}}{{.Req.Header.Get "True-Client-Ip"}}{{else}}—{{end}}
Forwarded
{{if .Req.Header.Get "Forwarded"}}{{.Req.Header.Get "Forwarded"}}{{else}}—{{end}}
Cloudflare Headers
CF-Connecting-IP
{{if .Req.Header.Get "Cf-Connecting-Ip"}}{{.Req.Header.Get "Cf-Connecting-Ip"}}{{else}}—{{end}}
CF-IPCountry
{{if .Req.Header.Get "Cf-Ipcountry"}}{{.Req.Header.Get "Cf-Ipcountry"}}{{else}}—{{end}}
CF-Ray
{{if .Req.Header.Get "Cf-Ray"}}{{.Req.Header.Get "Cf-Ray"}}{{else}}—{{end}}
CF-Visitor
{{if .Req.Header.Get "Cf-Visitor"}}{{.Req.Header.Get "Cf-Visitor"}}{{else}}—{{end}}
CF-Request-ID
{{if .Req.Header.Get "Cf-Request-Id"}}{{.Req.Header.Get "Cf-Request-Id"}}{{else}}—{{end}}
CF-Worker
{{if .Req.Header.Get "Cf-Worker"}}{{.Req.Header.Get "Cf-Worker"}}{{else}}—{{end}}
CF-ASNum / ASN
{{if .Req.Header.Get "Cf-Ipcountry"}}{{.Req.Header.Get "Cf-Ipcountry"}}{{else}}—{{end}}
All Request Headers
{{range $key, $values := .Req.Header}}
{{if not (or (eq $key "Cookie") (eq $key "Authorization"))}}
{{$key}}
{{range $values}}{{.}} {{end}}
{{end}}
{{end}}