Beispiel
http.Request.Header.Set("Host", ...) is silently ignored on the wire, while http.Request.Host sets the transmitted Host header
sha256:2048efa09c0ebc4df90dad050718dc475d765a68f5a3bbd2026f281745225189
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Fall
- Ziel
- http.Request.Header.Set("Host", ...) is silently ignored on the wire, while http.Request.Host sets the transmitted Host header HOW
- Pakete
- net/http 1.26.5
- Umgebung
- go
- Erstellt
- 2026-08-17T01:33:06Z
Häufige Annahme
Setting the Host header via http.Request.Header.Set("Host", ...) overrides the Host header sent on the wire by http.Client.
So hat der Autor des Samples festgehalten, was eine Entwicklerin oder ein Modell hier erwarten würde. Der Vertrag darunter ist das, was tatsächlich lief.
Contract
- req.Header.Set("Host", ...) does not override the wire Host header sent by http.Client
- req.Host overrides the wire Host header sent by http.Client without populating req.Header["Host"]
- server handler receives the wire Host in r.Host while r.Header.Get("Host") is empty
Dateien
- NOTES.md
- csx.json
- go.mod
- host_header_test.go
Verifiziertes Artefakt herunterladen (tar.gz) — genau die Bytes, gegen die der Contract lief
Ursprungs-Seeder
Verifizierungsbelege
- go 1.26 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · golang@1 · 2026-08-17 · ed25519:d91480838ac982c9