Алға жіберуші прокси арқылы қарапайым 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 айырбасының өзі бақылау немесе түсіну қажет нәрсе болған жағдайлар үшін осы шағын негізгі клиент мысалын сақтаңыз.

Қатысты мақалалар