Selesaikan Penguraian Header CONNECT Sebelum Meneruskan Aliran Klien
Server proksi yang meneruskan hanya setelah baris permintaan dapat mengirim header Host-nya sendiri ke port TLS tujuan.
Setelah baris permintaan CONNECT, byte ini masih milik proksi:
CONNECT service.example:443 HTTP/1.1\r\n
Host: service.example:443\r\n
User-Agent: example-client\r\n
\r\nMeneruskan Host atau User-Agent ke port 443 memberi tujuan header teks biasa di tempat yang mengharapkan TLS. Kegagalan itu dapat terjadi sebelum pilihan cipher menjadi penting.
- Baca dan uraikan hingga terminator header berupa baris kosong, dalam tenggat penyiapan dan batas ukuran header.
- Terapkan autentikasi proksi dan kebijakan tujuan.
- Buat koneksi target yang disetujui.
- Kirim balasan CONNECT yang berhasil dan masuk ke mode terowongan.
Pertahankan byte yang di-buffer setelah batas untuk keadaan berikutnya yang sesuai. Jangan membuangnya atau memperlakukan header permintaan proksi sebagai permintaan situs web berikutnya.
Klien memiliki kewajiban serupa di sisi respons: selesaikan membaca balasan CONNECT yang berhasil sebelum memulai protokol terowongan. Kedua ujung harus sepakat tentang batas tempat aliran berganti peran.