ການແປຄຳຮ້ອງ SOCKS5 ໃຫ້ເປັນອຸໂມງ HTTP
ເຮັດການແລກປ່ຽນ CONNECT ກັບພໍ່ແມ່ໃຫ້ສຳເລັດ, ສົ່ງຄຳຕອບ SOCKS ກັບໄປຫາລູກຄ້າ ແລ້ວຈຶ່ງສົ່ງບາຍຂອງແອັບພລິເຄຊັນ.
ສ່ວນໜ້າ SOCKS5 ສາມາດໃຊ້ພຣັອກຊີ HTTP ເປັນການຂົນສົ່ງຕໍ່ໄປຂອງຕົນ. ມັນເຮັດໜ້າທີ່ເປັນເຊີບເວີ SOCKS ຕໍ່ລູກຄ້າ ແລະ ເປັນລູກຄ້າ HTTP CONNECT ຕໍ່ພໍ່ແມ່. ການແລກປ່ຽນຄວບຄຸມທັງສອງຈະສິ້ນສຸດກ່ອນທີ່ກະແສຂອງແອັບພລິເຄຊັນຈະເລີ່ມ.
ຄຳຮ້ອງ SOCKS CONNECT ໃຫ້ທີ່ຢູ່ ຫຼື ທີ່ຢູ່ປາຍທາງ ແລະ ພອດແລ້ວ. ສຳລັບຕົວຢ່າງການແລກປ່ຽນ HTTP/1.1 ກັບພໍ່ແມ່:
client → adapter: SOCKS5 CONNECT service.example.net:443
adapter → parent:
CONNECT service.example.net:443 HTTP/1.1
Host: service.example.net:443
parent → adapter: HTTP/1.1 200 Connection Established
[end of headers]
adapter → client: SOCKS5 success reply
client ↔ adapter ↔ parent ↔ service: application bytes
ແປຜົນລັບທີ່ຂອບເຂດ
ອະແດັບເຕີຈະເຮັດການພິສູດຕົວຕົນທີ່ຈຳເປັນກັບພໍ່ແມ່ໃຫ້ຄົບ ແລ້ວລໍຖ້າຜົນຂອງ CONNECT. ຄຳຕອບ 2xx ທີ່ສຳເລັດຈະສ້າງອຸໂມງໄປຫາພໍ່ແມ່. ຫຼັງຈາກນັ້ນຈຶ່ງຄວນສົ່ງຄຳຕອບຄວາມສຳເລັດ SOCKS ທີ່ກົງກັນກັບໄປຫາລູກຄ້າທາງລຸ່ມ.
ຖ້າພໍ່ແມ່ປະຕິເສດການເຮັດວຽກ, ໃຫ້ສົ່ງຄຳຕອບຄວາມຜິດພາດ SOCKS ທີ່ກຳນົດໄວ້ ແລ້ວຢຸດການເຊື່ອມຕໍ່ຂອງລູກຄ້າທັນທີ. SOCKS5 ຮຽກຮ້ອງການປິດນັ້ນພາຍໃນສິບວິນາທີຫຼັງຈາກພົບຄວາມຜິດພາດ. ເກັບສະຖານະ HTTP ຂອງພໍ່ແມ່ໄວ້ເປັນຂໍ້ມູນກວດສອບສຳລັບອະແດັບເຕີ. ການສົ່ງແຖວສະຖານະນັ້ນເປັນຂໍ້ມູນຂອງແອັບພລິເຄຊັນຈະເອົາຂໍ້ຄວາມຄວບຄຸມ HTTP ໃສ່ໃນກະແສທີ່ລູກຄ້າຂອງມັນຄາດຫວັງກອບ SOCKS.
ກ່ອນຜົນ CONNECT ຈະສຳເລັດ ພໍ່ແມ່ຍັງເວົ້າ HTTP ຢູ່ ລວມທັງກອບຂອງຄຳຕອບສິ່ງທ້າທາຍ ຫຼື ຄວາມຜິດພາດໃດໆ. ຫຼັງຈາກຕົວແຍກຫົວຂໍ້ຂອງຜົນທີ່ສຳເລັດ ການເຊື່ອມຕໍ່ຈະກາຍເປັນອຸໂມງ; ບໍ່ມີເນື້ອຄຳຕອບ HTTP ທີ່ຕ້ອງໃຊ້ກ່ອນ.
ຮັກສາບາຍຫຼັງຫົວຂໍ້
ການອ່ານຄັ້ງໜຶ່ງອາດມີທັງທ້າຍຫົວຂໍ້ຂອງພໍ່ແມ່ ແລະ ບາຍຈາກປາຍທາງຢູ່ນຳກັນ. ເກັບບາຍເພີ່ມເຕີມເຫຼົ່ານັ້ນໄວ້ສຳລັບແອັບພລິເຄຊັນທາງລຸ່ມ. ໂປຣໂຕຄອນທີ່ເຊີບເວີເວົ້າກ່ອນສາມາດທັກທາຍໄດ້ທັນທີຫຼັງຈາກການເຊື່ອມຕໍ່ຂອງພວກມັນເປີດ.
ຫຼັງຈາກສົ່ງຄຳຕອບຄວາມສຳເລັດ SOCKS ແລ້ວ ສົ່ງກະແສຂອງແອັບພລິເຄຊັນໄປທັງສອງທິດທາງ. ອະແດັບເຕີບໍ່ຈຳເປັນຕ້ອງສະຫຼັບຂໍ້ຄວາມລູກຄ້າໜຶ່ງກັບຂໍ້ຄວາມເຊີບເວີໜຶ່ງ ແລະ ບໍ່ຈຳເປັນຕ້ອງເຂົ້າໃຈບັນທຶກ TLS ເພື່ອສົ່ງຕໍ່ພວກມັນ. ວຽກດ້ານໂປຣໂຕຄອນຂອງມັນແມ່ນການສ້າງ ແລະ ແປການເຈລະຈາອຸໂມງທັງສອງ.