Permintaan proxy HTTP: URL absolut versus header Host
Jaga target permintaan absolut dan bidang Host tetap konsisten saat membuat permintaan HTTP/1.1 melalui proxy eksplisit.
Host mana yang dimaksud permintaan proxy HTTP/1.1 ini?
GET http://first.example/path HTTP/1.1
Host: second.example
Pesannya tidak konsisten. Pada permintaan berbentuk absolut yang dikirim ke proxy, RFC 9112 mewajibkan nilai Host yang diteruskan berasal dari target permintaan. Meneruskan Host: first.example adalah perilaku yang diharapkan.
Dalam pengujian situs pengembangan, jaga nama host sumber daya tetap konsisten di URL dan otoritas HTTP. Sediakan pemetaan nama-ke-alamat yang diinginkan pada hop yang bertanggung jawab atas resolusi. Penggantian Host yang bertentangan bukan instruksi portabel untuk memilih backend.
HTTPS berbeda. Setelah terowongan CONNECT biasa terbuka, TLS dan pertukaran HTTP internal terjadi di dalamnya. Proxy yang tidak mencegat umumnya tidak dapat menulis ulang kolom Host terenkripsi itu. Tujuan CONNECT, nama TLS, dan identitas sertifikat tetap merupakan peran yang terpisah.
Menghapus Via, Referer, atau Cache-Control tidak menyelaraskan kedua otoritas. Catat bentuk permintaan dan titik tempat Anda mengamati header sebelum mendiagnosis penulisan ulang proxy.