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 ವಿನಿಮಯವೇ ನೀವು ನಿಯಂತ್ರಿಸಬೇಕಾದ ಅಥವಾ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬೇಕಾದ ವಿಷಯವಾದಾಗ ಈ ಸಣ್ಣ ಕೋರ್-ಕ್ಲೈಂಟ್ ಉದಾಹರಣೆಯನ್ನು ಇಟ್ಟುಕೊಳ್ಳಿ.