Node HTTP-ஐ proxy வழியாக அனுப்பும் கோரிக்கை வரி
இணைப்பு முனையம், முழுமையான இலக்கு மற்றும் Host தலைப்பைப் பிரித்து Node-இன் முக்கிய கிளையண்டுடன் எளிய HTTP proxy கோரிக்கையை உருவாக்குங்கள்.
முன்னோக்கு proxy வழியாகச் செல்லும் சாதாரண HTTP கோரிக்கையில், Node proxy-யுடன் இணைந்து இலக்கு 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 proxy பட்டியலில் இருந்து வேட்பாளரைத் தேர்ந்தெடுத்து அதன் பதிலைச் சரிபார்க்கவும். எடுத்துக்காட்டு நிலையை அச்சிட்ட பிறகு பதிலை வடிகட்டுகிறது; ஒரு பயன்பாடு அதற்குப் பதிலாக உடலைப் பயன்படுத்தலாம். வினவல் கோரிக்கை இலக்கின் பகுதியாகவே இருக்கும்.
முழு 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-யின் சான்றுகள் அதன் சொந்த ஹாப்பிற்கு உரியவை. Node-இன் auth கோரிக்கை விருப்பம் வளத்திற்கான Authorization தலைப்பை உருவாக்குகிறது; இது பொதுவான proxy உள்நுழைவு விருப்பம் அல்ல. பரிமாற்றம் சிக்கலானதாக இருக்கும்போது proxy கோரும் திட்டத்தையும் பொருத்தமான proxy கிளையண்டையும் பயன்படுத்தவும்.
HTTPS ஒரு சுரங்கத்தைச் சேர்க்கிறது
இந்த எடுத்துக்காட்டு சாதாரண HTTP அனுப்புதலை உள்ளடக்குகிறது. வழக்கமான HTTP proxy வழியாக HTTPS இணைப்பு முதலில் CONNECT example.com:443 கோரி, பின்னர் ஏற்றுக்கொள்ளப்பட்ட சுரங்கத்திற்குள் இலக்கை நோக்கி TLS தொடங்குகிறது. எடுத்துக்காட்டின் URL-ஐ HTTPS ஆக்குவது அந்த நிலைகளைச் சேர்க்காது.
HTTPS அல்லது கலப்பு பணிச்சுமைக்கு தேவையான சுரங்க ஆதரவுடன் பராமரிக்கப்படும் proxy முகவர் அல்லது அனுப்புநரைப் பயன்படுத்தவும். இணக்கமான Node பதிப்புகளுக்கு ஒரு விருப்பம் ProxyAgent உடன் Undici-இன் fetch. சாதாரண HTTP பரிமாற்றமே நீங்கள் கட்டுப்படுத்த அல்லது புரிந்துகொள்ள வேண்டியதாக இருக்கும்போது இந்தச் சிறிய முக்கிய-கிளையண்ட் எடுத்துக்காட்டை வைத்திருங்கள்.