آگے بھیجنے والے پروکسی کے ذریعے عام HTTP درخواست میں Node پروکسی سے جڑتا ہے اور منزل کا URL درخواست کی سطر میں بھیجتا ہے۔ تین قدریں اُس ایک درخواست کی وضاحت کرتی ہیں:

قدرمثال
TCP کنکشن اینڈ پوائنٹproxy.example:8080
درخواست کا ہدفhttp://example.com/news?q=proxy
Host ہیڈرexample.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);

اینڈ پوائنٹ ایک عارضی جگہ ہے؛ عوامی HTTP جانچ کے لیے HTTP پروکسی فہرست سے امیدوار منتخب کریں اور اس کا جواب دیکھیں۔ مثال حالت چھاپنے کے بعد جواب خالی کر دیتی ہے؛ کوئی ایپلیکیشن اس کے بجائے باڈی استعمال کر سکتی ہے۔ استفسار درخواست کے ہدف کا حصہ رہتا ہے۔

مکمل URL وہاں کیوں ہوتا ہے

اصل سرور کو عام طور پر /news?q=proxy جیسا ہدف ملتا ہے۔ آگے بھیجنے والے پروکسی کو بھی منزل درکار ہوتی ہے، اسی لیے HTTP/1.1 ہدف کو مطلق شکل میں متعین کرتا ہے:

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

HTTP/1.1 کے قواعد کے مطابق، مطلق شکل پانے والا پروکسی آگے بھیجتے وقت URI کا اختیار استعمال کرتا ہے اور متضاد موصول شدہ Host فیلڈ کی جگہ لیتا ہے۔ ہم آہنگ منزل کا Host ہیڈر بھیجنے سے بھی جانے والی درخواست غیر مبہم رہتی ہے۔ Node کا کنکشن ہوسٹ نام واسطہ ہے، اس لیے ہیڈر کو دانستہ طور پر مقرر کریں بجائے اس کنکشن پتے پر انحصار کرنے کے۔

اگر تصدیق درکار ہو تو پروکسی کی اسناد اس کے اپنے ہاپ کی ہیں۔ Node کا auth درخواست آپشن وسائل کے لیے Authorization ہیڈر بناتا ہے؛ یہ پروکسی لاگ ان کا عمومی آپشن نہیں ہے۔ جب تبادلہ زیادہ پیچیدہ ہو تو پروکسی کا مطلوبہ اسکیم اور موزوں پروکسی کلائنٹ استعمال کریں۔

HTTPS ایک سرنگ شامل کرتا ہے

یہ مثال سادہ HTTP ترسیل کا احاطہ کرتی ہے۔ عام HTTP پروکسی کے ذریعے HTTPS کنکشن پہلے CONNECT example.com:443 طلب کرتا ہے، پھر قبول شدہ سرنگ کے اندر منزل کی طرف TLS شروع کرتا ہے۔ مثال کا URL HTTPS میں بدلنے سے وہ مراحل شامل نہیں ہوتے۔

HTTPS یا مخلوط بوجھ کے لیے مطلوبہ سرنگ معاونت والا برقرار رکھا گیا پروکسی ایجنٹ یا ڈسپیچر استعمال کریں۔ موافق Node ورژنز کے لیے ایک آپشن ProxyAgent کے ساتھ Undici کا fetch ہے۔ جب سادہ HTTP تبادلہ ہی وہ چیز ہو جسے آپ کنٹرول یا سمجھنا چاہتے ہیں تو یہ چھوٹی بنیادی کلائنٹ مثال رکھیں۔

متعلقہ مضامین