ລູກຂ່າຍເຫັນ 200 Connection Established, ເລີ່ມ TLS ແລ້ວລາຍງານສິ່ງທີ່ບໍ່ມີຄວາມໝາຍທັນທີໃນບ່ອນທີ່ຄວນມີບັນທຶກ TLS. ຊອກຫາຄຳຕອບ HTTP ທີ່ຍັງບໍ່ສຳເລັດກ່ອນຈະໂທດການຕັ້ງຄ່າ cipher ຂອງປາຍທາງ.

ໃນການແລກປ່ຽນ HTTP/1 CONNECT, ແຖວສະຖານະເປັນພຽງຈຸດເລີ່ມຕົ້ນຂອງຄຳຕອບ. ຫຼັງຈາກນັ້ນອາດມີຊ່ອງຫົວຂໍ້. ແຖວຫວ່າງທີ່ປິດພາກຫົວຂໍ້ໝາຍເຖິງການປ່ຽນໄປຫາອຸໂມງ ຫຼັງຈາກຄຳຕອບ CONNECT ສຳເລັດ.

HTTP/1.1 200 Connection Established\r\n
Proxy-Agent: example\r\n
\r\n

ໄບຕ໌ເຫຼົ່ານີ້ອາດມາດ້ວຍການອ່ານຄັ້ງດຽວ, ຫຼາຍຄັ້ງ, ຫຼືການອ່ານທີ່ມີໄບຕ໌ຕໍ່ໄປນຳ. TCP ບໍ່ຮັກສາຂອບເຂດການຂຽນຂອງເຊີບເວີ.

ເຮັດໃຫ້ການສົ່ງຕໍ່ເປັນສະຖານະ parser ທີ່ຊັດເຈນ

  1. ເກັບແລະວິເຄາະແຖວສະຖານະ. ໃຊ້ສະຖານະເປັນໂຕເລກ ແທນປະໂຫຍກເຫດຜົນພາສາອັງກິດທີ່ແນ່ນອນ.
  2. ສືບຕໍ່ຈົນກວ່າຕົວປິດພາກຫົວຂໍ້ຈະມາຄົບ. ແຖວສະຖານະທີ່ສຳເລັດບໍ່ເຮັດໃຫ້ຊ່ອງທີ່ເຫຼືອຫາຍໄປ.
  3. ສຳລັບຄຳຕອບ CONNECT ທີ່ສຳເລັດ, ໃຫ້ຖືໄບຕ໌ທີ່ຢູ່ຫຼັງຕົວປິດນັ້ນທັນທີເປັນຈຸດເລີ່ມຕົ້ນຂອງຂໍ້ມູນອຸໂມງ. ສຳລັບຄຳຕອບອື່ນ ໃຫ້ປະຕິບັດຕາມການຈັດການຄຳຕອບ HTTP ແລະ ການກວດສອບທີ່ເໝາະສົມ.
  4. ສົ່ງຕໍ່ການເຊື່ອມຕໍ່ ແລະ ໄບຕ໌ທີ່ຍັງບໍ່ໄດ້ໃຊ້ ຜ່ານອິນເຕີເຟສ I/O ທີ່ມີ buffer ທີ່ໂປຣໂຕຄອນຕໍ່ໄປຮອງຮັບ.

ຂັ້ນຕອນສຸດທ້າຍສຳຄັນເຖິງແມ່ນການຊອກຫາຕົວແຍກຈະດີ. ຕົວອ່ານທີ່ມີ buffer ອາດໄດ້ໃຊ້ socket ຫຼາຍກວ່າທີ່ parser ຂໍ. ການເລີ່ມ TLS ເທິງ socket ເປົ່າໃນຂະນະທີ່ປະຕົວອ່ານນັ້ນ ອາດເຮັດໃຫ້ໄບຕ໌ຄ້າງຢູ່ໃນ buffer ສ່ວນຕົວຂອງຕົວອ່ານ.

ໃຊ້ກຳນົດເວລາຕັ້ງຄ່າ ແລະ ຂີດຈຳກັດຂະໜາດຫົວຂໍ້. EOF ກ່ອນຕົວປິດ ໝາຍເຖິງຄຳຕອບພຣັອກຊີທີ່ບໍ່ສົມບູນ ບໍ່ແມ່ນການເຊີນໃຫ້ລໍຖ້າຕະຫຼອດໄປ ຫຼື ລອງ TLS ຢ່າງໃດກໍ່ຕາມ.

ຄິດເຖິງຫຼາຍຂອບເຂດ

ຈິນຕະນາການວ່າການອ່ານໜຶ່ງສິ້ນສຸດຫຼັງ Proxy-Agent:. Parser ຍັງຕ້ອງການໄບຕ໌ຫົວຂໍ້ HTTP ເພີ່ມ. ຈິນຕະນາການອີກອັນໜຶ່ງທີ່ສິ້ນສຸດກາງລຳດັບ CRLF ສຸດທ້າຍ. ນັ້ນຍັງບໍ່ແມ່ນພາກຫົວຂໍ້ທີ່ສົມບູນ. ຕອນນີ້ຈິນຕະນາການພາກຫົວຂໍ້ທີ່ສຳເລັດຄົບ ແລ້ວມີໄບຕ໌ອຸໂມງຕໍ່ມາໃນ buffer ດຽວກັນ: ໄບຕ໌ເພີ່ມເຕີມເຫຼົ່ານັ້ນຕ້ອງຜ່ານການສົ່ງຕໍ່ໄດ້.

407 ເປັນຜົນອີກຢ່າງ. ມັນຕ້ອງການການຈັດການກວດສອບ; ມັນບໍ່ອະນຸຍາດໃຫ້ TLS ClientHello ເຂົ້າໄປໃນອຸໂມງທີ່ບໍ່ເຄີຍເປີດ.

ເລືອກ connector ທີ່ມີການດູແລ ເວັ້ນແຕ່ການຈັດຕັ້ງ handshake ເປັນໜ້າວຽກເອງ. ຂອບເຂດນີ້ເຈາະຈົງກັບການແລກປ່ຽນ HTTP/1 ທີ່ສະແດງຢູ່ນີ້. ພຣັອກຊີ HTTP/2 ບັນທຸກ CONNECT ເທິງ stream ທີ່ມີການຈັດໂຄງຕ່າງກັນ.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ