HTTP-proxyversoeke: absolute URL's teenoor die Host-kop
Hou die absolute versoekteiken en die Host-veld konsekwent wanneer jy 'n HTTP/1.1-versoek deur 'n eksplisiete proxy maak.
Watter gasheer bedoel hierdie HTTP/1.1-proxyversoek?
GET http://first.example/path HTTP/1.1
Host: second.example
Die boodskap is teenstrydig. Vir 'n versoek in absolute vorm wat aan 'n proxy gestuur word, vereis RFC 9112 dat die deurgestuurde Host-waarde uit die versoekteiken kom. Om Host: first.example deur te stuur is die verwagte gedrag.
Vir 'n toets op 'n ontwikkelingswerf moet die hulpbron se gasheernaam in die URL en in die HTTP-outoriteit ooreenstem. Voorsien die gewenste naam-tot-adres-kaart by die hop wat vir die oplossing verantwoordelik is. 'n Teensprekende Host-oorheersing is nie 'n draagbare opdrag vir die keuse van 'n backend nie.
HTTPS verskil. Nadat 'n gewone CONNECT-tonnel oopgemaak is, vind TLS en die innerlike HTTP-uitruiling daarbinne plaas. 'n Proxy wat nie onderskep nie, kan gewoonlik nie daardie geënkripteerde Host-veld herskryf nie. Die CONNECT-bestemming, die TLS-naam en die sertifikaatidentiteit bly aparte rolle.
Om Via, Referer of Cache-Control te verwyder versoen nie die twee outoriteite nie. Teken die versoekvorm aan en die punt waar jy die kop gesien het voordat jy 'n proxy-herskrywing diagnoseer.