Në një kërkesë të zakonshme HTTP përmes një proxy përpara, Node lidhet me proxy-n dhe dërgon URL-në e destinacionit në rreshtin e kërkesës. Tre vlera përshkruajnë atë kërkesë të vetme:

VleraShembull
Pika e lidhjes TCPproxy.example:8080
Objektivi i kërkesështtp://example.com/news?q=proxy
Koka Hostexample.com

Ky shembull për Node 22 e bën ndarjen të qartë:

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

Pika e lidhjes është një vendmbajtëse; zgjidhni një kandidat nga lista e proxy-ve HTTP për një test publik HTTP dhe kontrolloni përgjigjen e tij. Shembulli e zbraz përgjigjen pasi printon statusin; një aplikacion mund të konsumojë trupin në vend të kësaj. Pyetësori mbetet pjesë e objektivit të kërkesës.

Pse URL-ja e plotë i takon atje

Një server origjine zakonisht merr një objektiv si /news?q=proxy. Një proxy përpara ka nevojë gjithashtu për destinacionin, prandaj HTTP/1.1 e përcakton objektivin në formë absolute:

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

Sipas rregullave të HTTP/1.1, një proxy që merr formën absolute përdor autoritetin e URI-t gjatë përcjelljes dhe zëvendëson një fushë Host të marrë jokonsistente. Dërgimi i një koke Host konsistente të destinacionit e mban kërkesën dalëse të paqartë. Emri i hostit të lidhjes në Node është ndërmjetësi, prandaj vendoseni kokën me qëllim në vend që të mbështeteni te ajo adresë lidhjeje.

Nëse kërkohet vërtetim, kredencialet e proxy-t i përkasin hopit të vet. Opsioni i kërkesës auth në Node krijon një kokë Authorization për burimin; nuk është një opsion i përgjithshëm për t'u identifikuar në proxy. Përdorni skemën që kërkon proxy-i dhe një klient proxy të përshtatshëm kur shkëmbimi është më i ndërlikuar.

HTTPS shton një tunel

Ky shembull mbulon përcjelljen e thjeshtë HTTP. Një lidhje HTTPS përmes një proxy HTTP tipike kërkon fillimisht CONNECT example.com:443, pastaj nis TLS drejt destinacionit brenda tunelit të pranuar. Ndryshimi i URL-së së shembullit në HTTPS nuk i shton ato faza.

Për HTTPS ose një ngarkesë të përzier, përdorni një agjent ose dërgues proxy të mirëmbajtur me mbështetjen e nevojshme të tunelit. Për versionet e përputhshme të Node, një opsion është fetch i Undici me një ProxyAgent. Mbajeni këtë shembull të vogël të klientit bazë për rastet kur shkëmbimi i thjeshtë HTTP është pikërisht ajo që duhet të kontrolloni ose të kuptoni.

Artikuj të ngjashëm