Node HTTP proxya bidez bideratzen duen eskaera-lerroa
Eraiki HTTP proxy eskaera arrunta Node-ren nukleo-bezeroarekin, konexio-muturra, helburu absolutua eta Host goiburua bereiziz.
Proxy aurreratu baten bidezko HTTP eskaera arruntean, Node proxya-rekin konektatzen da eta helmugako URLa eskaera-lerroan bidaltzen du. Hiru baliok eskaera bakarra deskribatzen dute:
| Balioa | Adibidea |
|---|---|
| TCP konexio-muturra | proxy.example:8080 |
| Eskaeraren helburua | http://example.com/news?q=proxy |
| Host goiburua | example.com |
Node 22-ren adibide honek bereizketa argi uzten du:
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);
Muturra leku-marka bat da; aukeratu hautagai bat HTTP proxy zerrendatik HTTP proba publiko baterako eta egiaztatu haren erantzuna. Adibideak erantzuna husten du egoera inprimatu ondoren; aplikazio batek gorputza kontsumi dezake horren ordez. Kontsulta eskaeraren helburuaren parte izaten jarraitzen du.
Zergatik dagokion URL osoa han
Jatorrizko zerbitzari batek normalean /news?q=proxy bezalako helburua jasotzen du. Proxy aurreratuak helmuga ere behar du, beraz HTTP/1.1-ek helburua forma absolutuan definitzen du:
GET http://example.com/news?q=proxy HTTP/1.1
Host: example.com
HTTP/1.1 arauen arabera, forma absolutua jasotzen duen proxy batek URIaren autoritatea erabiltzen du birbidaltzean eta jasotako Host eremu koherentea ez dena ordezkatzen du. Helmugako Host goiburu koherentea bidaltzeak irteerako eskaera anbiguoa ez izaten jarraitzen du. Node-ren konexio-ostalariaren izena bitartekaria da, beraz ezarri goiburua nahita, konexio-helbide horretan fidatu beharrean.
Autentifikazioa beharrezkoa bada, proxyaren kredentzialak bere jauziari dagozkio. Node-ren auth eskaera-aukerak Authorization goiburua sortzen du baliabiderako; ez da proxy saio-hasierako aukera orokorra. Erabili proxyak eskatzen duen eskema eta proxy bezero egokia elkartrukea konplexuagoa denean.
HTTPSek tunela gehitzen du
Adibide honek HTTP birbidaltze arrunta estaltzen du. Ohiko HTTPS konexio batek HTTP proxya bidez lehenengo CONNECT example.com:443 eskatzen du, gero TLS abiarazten du helmugarantz onartutako tunelaren barruan. Adibideko URLa HTTPSera aldatzeak ez ditu etapa horiek gehitzen.
HTTPS edo karga misto baterako, erabili behar den tunel-euskarria duen proxy agente edo bidaltzaile mantendu bat. Node bertsio bateragarrietarako, aukera bat Undiciren fetcha ProxyAgent batekin da. Mantendu nukleo-bezeroaren adibide txiki hau HTTP elkartruke arrunta bera kontrolatu edo ulertu behar duzunerako.