Bei enger gewéinlecher HTTP-Ufro iwwer e Virwärtsproxy verbënnt sech Node mam Proxy a schéckt d'Zil-URL an der Ufrozeil. Dräi Wäerter beschreiwen déi eng Ufro:

WäertBeispill
TCP-Uschlossendpunktproxy.example:8080
Ufrozilhttp://example.com/news?q=proxy
Host-Headerexample.com

Dëst Node 22-Beispill mécht d'Trennung kloer:

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);

Den Endpunkt ass en Ersatz; wielt en Kandidat aus der HTTP-Proxylëscht fir en ëffentlechen HTTP-Test a kontrolléiert seng Äntwert. D'Beispill dréint d'Äntwert of, nodeems en de Status ausginn huet; eng Applikatioun kann amplaz de Kierper verbrauchen. D'Ufro bleift en Deel vum Ufrozil.

Firwat déi voll URL dohinner gehéiert

En Origin-Server kritt normalerweis en Zil wéi /news?q=proxy. En Virwärtsproxy brauch och d'Zil, dofir definéiert HTTP/1.1 dat absolut Zil:

GET http://example.com/news?q=proxy HTTP/1.1
Host: example.com

No den HTTP/1.1-Regele benotzt e Proxy, deen déi absolut Form kritt, beim Weiderginn d'Autoritéit vum URI a ersetzt en inkonsistenten empfangenen Host-Feld. Eng konsequent Host-Header fir d'Zil ze schécken hält déi erausgängeg Ufro trotzdeem eendeiteg. Den Uschlosshostnumm vun Node ass den Tëschentmann, also setzt den Header bewosst, amplaz op déi Uschlossadress ze verloossen.

Wann Authentifizéierung néideg ass, gehéieren d'Proxy-Berechtegungen zu sengem Hop. D'Node-Ufrooptioun auth erstellt en Authorization-Header fir d'Ressource; et ass keng allgemeng Proxy-Login-Optioun. Benotzt d'Schema, dat de Proxy verlaangt, an e passende Proxyclient, wann den Austausch méi komplex ass.

HTTPS setzt en Tunnel derbäi

Dëst Beispill deckt déi einfach HTTP-Weidergabe of. Eng typesch HTTPS-Verbindung iwwer en HTTP-Proxy freet fir d'éischt CONNECT example.com:443 un a start dann TLS zum Zil bannent dem akzeptéierten Tunnel. D'Beispill-URL op HTTPS ändere setzt déi Etappen net derbäi.

Fir HTTPS oder eng gemëschte Belaaschtung benotzt en ënnerhalenen Proxyagent oder Dispatcher mat der noutwendeger Tunnelënnerstëtzung. Fir kompatibel Node-Versiounen ass eng Optioun den Undici-Fetch mat engem ProxyAgent. Hält dëst klengt Kärclient-Beispill fir Fäll, wou den einfachen HTTP-Austausch selwer dat ass, wat Dir musst kontrolléieren oder verstoen.

Ähnlech Artikelen