Oldinga yo'naltiruvchi proksi orqali oddiy HTTP so'rovida Node proksiga ulanadi va maqsad URL ni so'rov qatorida yuboradi. Uchta qiymat shu bitta so'rovni tavsiflaydi:

QiymatMisol
TCP ulanish oxirgi nuqtasiproxy.example:8080
So'rov maqsadihttp://example.com/news?q=proxy
Host sarlavhasiexample.com

Ushbu Node 22 misoli ajratishni ravshan qiladi:

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);

Oxirgi nuqta — vaqtinchalik joy; ommaviy HTTP sinovi uchun HTTP proksilar ro'yxatidan nomzod tanlab, uning javobini tekshiring. Misol holatni chop etgandan keyin javobni bo'shatadi; ilova buning o'rniga tanani ishlatishi mumkin. So'rov so'rov maqsadining qismi bo'lib qoladi.

Nega to'liq URL aynan o'sha yerda

Manba server odatda /news?q=proxy kabi maqsad oladi. Oldinga yo'naltiruvchi proksiga ham manzil kerak, shuning uchun HTTP/1.1 maqsadni mutlaq shaklda belgilaydi:

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

HTTP/1.1 qoidalariga ko'ra, mutlaq shaklni olgan proksi uzatishda URI ning vakolatidan foydalanadi va nomuvofiq qabul qilingan Host maydonini almashtiradi. Muvofiq maqsad Host sarlavhasini yuborish baribir chiquvchi so'rovni bir ma'noli saqlaydi. Node ning ulanish xost nomi vositachi, shuning uchun sarlavhani o'sha ulanish manziliga tayanmasdan ataylab o'rnating.

Agar autentifikatsiya talab qilinsa, proksi hisob ma'lumotlari uning o'z sakrashiga tegishli. Node ning auth so'rov parametri resurs uchun Authorization sarlavhasini yaratadi; bu proksiga kirishning umumiy parametri emas. Almashinuv murakkabroq bo'lsa, proksi talab qiladigan sxema va mos proksi mijozidan foydalaning.

HTTPS tunnel qo'shadi

Bu misol oddiy HTTP uzatishni qamrab oladi. Odatiy HTTP proksi orqali HTTPS ulanishi avval CONNECT example.com:443 so'raydi, so'ng qabul qilingan tunnel ichida manzilga TLS boshlaydi. Misol URL ini HTTPS ga o'zgartirish bu bosqichlarni qo'shmaydi.

HTTPS yoki aralash yuklama uchun kerakli tunnel qo'llab-quvvatlashiga ega xizmat ko'rsatiladigan proksi agenti yoki dispatcherdan foydalaning. Mos Node versiyalari uchun bir variant — ProxyAgent bilan Undici fetch. Oddiy HTTP almashinuvi o'zi siz boshqarishingiz yoki tushunishingiz kerak bo'lgan narsa bo'lganda ushbu kichik asosiy mijoz misolini saqlang.

O'xshash maqolalar