Node HTTP लाई प्रोक्सीबाट मार्गनिर्देशन गर्ने अनुरोध लाइन
जडान अन्त्यबिन्दु, निरपेक्ष लक्ष्य र Host हेडर छुट्याएर Node को मुख्य क्लाइन्टसँग साधारण HTTP प्रोक्सी अनुरोध बनाउनुहोस्।
फर्वार्ड प्रोक्सी हुँदै जाने सामान्य 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 आदानप्रदान नै नियन्त्रण वा बुझ्नुपर्ने कुरा हुँदा यो सानो मुख्य-क्लाइन्ट उदाहरण राख्नुहोस्।