ਉਹ ਬੇਨਤੀ ਲਾਈਨ ਜੋ 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 ਅਦਾਨ-ਪ੍ਰਦਾਨ ਹੀ ਉਹ ਚੀਜ਼ ਹੋਵੇ ਜਿਸਨੂੰ ਤੁਸੀਂ ਨਿਯੰਤਰਿਤ ਜਾਂ ਸਮਝਣਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਇਹ ਛੋਟੀ ਮੁੱਖ-ਕਲਾਇੰਟ ਉਦਾਹਰਨ ਰੱਖੋ।