ໃນຄຳຮ້ອງ HTTP ທຳມະດາຜ່ານ proxy ທີ່ສົ່ງຕໍ່, Node ເຊື່ອມຕໍ່ກັບ proxy ແລະ ສົ່ງ URL ປາຍທາງໃນແຖວຄຳຮ້ອງ. ສາມຄ່າອະທິບາຍຄຳຮ້ອງດຽວນັ້ນ:

ຄ່າຕົວຢ່າງ
ຈຸດສຸດທ້າຍຂອງການເຊື່ອມຕໍ່ TCPproxy.example:8080
ເປົ້າໝາຍຄຳຮ້ອງhttp://example.com/news?q=proxy
ຫົວຂໍ້ Hostexample.com

ຕົວຢ່າງ Node 22 ນີ້ເຮັດໃຫ້ການແຍກຊັດເຈນ:

const http = require('node:http');
const destination = new URL('http://example.com/news?q=proxy');

const request = http.get({
  hostname: 'proxy.example',
  port: 8080,
  path: destination.href,
  headers: { Host: destination.host },
  signal: AbortSignal.timeout(15000),
}, (response) => {
  console.log(response.statusCode);
  response.on('error', console.error);
  response.resume();
});
request.on('error', console.error);

ຈຸດສຸດທ້າຍເປັນບ່ອນວ່າງ; ເລືອກຜູ້ສະໝັກຈາກ ລາຍຊື່ proxy HTTP ສຳລັບການທົດສອບ HTTP ສາທາລະນະ ແລະ ກວດກາຄຳຕອບຂອງມັນ. ຕົວຢ່າງລະບາຍຄຳຕອບຫຼັງຈາກພິມສະຖານະ; ແອັບພລິເຄຊັນສາມາດໃຊ້ເນື້ອໃນແທນ. ຄຳຖາມຍັງເປັນສ່ວນໜຶ່ງຂອງເປົ້າໝາຍຄຳຮ້ອງ.

ເປັນຫຍັງ URL ເຕັມຈຶ່ງຢູ່ທີ່ນັ້ນ

ເຊີບເວີຕົ້ນກຳເນີດປົກກະຕິໄດ້ຮັບເປົ້າໝາຍເຊັ່ນ /news?q=proxy. proxy ທີ່ສົ່ງຕໍ່ກໍຕ້ອງການປາຍທາງ, ດັ່ງນັ້ນ HTTP/1.1 ກຳນົດເປົ້າໝາຍໃນຮູບແບບສົມບູນ:

GET http://example.com/news?q=proxy HTTP/1.1
Host: example.com

ຕາມກົດຂອງ HTTP/1.1, proxy ທີ່ໄດ້ຮັບຮູບແບບສົມບູນຈະໃຊ້ສິດອຳນາດຂອງ URI ເມື່ອສົ່ງຕໍ່ ແລະ ແທນຊ່ອງ Host ທີ່ໄດ້ຮັບບໍ່ສອດຄ່ອງ. ການສົ່ງຫົວຂໍ້ Host ປາຍທາງທີ່ສອດຄ່ອງຍັງເຮັດໃຫ້ຄຳຮ້ອງອອກໄປບໍ່ກຳກວມ. ຊື່ໂຮສຂອງການເຊື່ອມຕໍ່ Node ແມ່ນຕົວກາງ, ດັ່ງນັ້ນຕັ້ງຫົວຂໍ້ຢ່າງຕັ້ງໃຈ ແທນທີ່ຈະອີງໃສ່ທີ່ຢູ່ເຊື່ອມຕໍ່ນັ້ນ.

ຖ້າຕ້ອງການກວດສອບຕົວຕົນ, ຂໍ້ມູນຢືນຢັນຂອງ proxy ເປັນຂອງບາດກ້າວຂອງມັນເອງ. ຕົວເລືອກຄຳຮ້ອງ auth ຂອງ Node ສ້າງຫົວຂໍ້ Authorization ສຳລັບຊັບພະຍາກອນ; ມັນບໍ່ແມ່ນຕົວເລືອກເຂົ້າສູ່ proxy ທົ່ວໄປ. ໃຊ້ໂຄງການທີ່ proxy ຕ້ອງການ ແລະ ລູກຄ້າ proxy ທີ່ເໝາະສົມ ເມື່ອການແລກປ່ຽນສັບສົນກວ່າ.

HTTPS ເພີ່ມອຸໂມງ

ຕົວຢ່າງນີ້ກວມເອົາການສົ່ງຕໍ່ HTTP ທຳມະດາ. ການເຊື່ອມຕໍ່ HTTPS ຜ່ານ proxy HTTP ປົກກະຕິຈະຮ້ອງຂໍ CONNECT example.com:443 ກ່ອນ, ແລ້ວເລີ່ມ TLS ໄປຫາປາຍທາງພາຍໃນອຸໂມງທີ່ຍອມຮັບ. ການປ່ຽນ URL ຂອງຕົວຢ່າງເປັນ HTTPS ບໍ່ໄດ້ເພີ່ມຂັ້ນຕອນເຫຼົ່ານັ້ນ.

ສຳລັບ HTTPS ຫຼື ພາລະວຽກປະສົມ, ໃຊ້ຕົວແທນ ຫຼື ຕົວສົ່ງ proxy ທີ່ຖືກດູແລພ້ອມການສະໜັບສະໜູນອຸໂມງທີ່ຕ້ອງການ. ສຳລັບເວີຊັນ Node ທີ່ເຂົ້າກັນໄດ້, ທາງເລືອກໜຶ່ງແມ່ນ fetch ຂອງ Undici ກັບ ProxyAgent. ເກັບຕົວຢ່າງລູກຄ້າຫຼັກນ້ອຍນີ້ໄວ້ສຳລັບກໍລະນີທີ່ການແລກປ່ຽນ HTTP ທຳມະດາເອງແມ່ນສິ່ງທີ່ທ່ານຕ້ອງຄວບຄຸມ ຫຼື ເຂົ້າໃຈ.

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