Rokstulin, ið leiðir HTTP í Node gjøgnum proxy
Bygg eina vanliga HTTP-proxy-fyrispurning við kjarnaklientinum í Node við at skilja sambandsendan, absolutta málið og Host-høvdið.
Í einum vanligum HTTP-fyrispurningi gjøgnum ein framleiðandi proxy setur Node samband við proxyina og sendur URL'ina hjá málinum í rokstulinum. Trý virði lýsa hesum eina fyrispurningi:
| Virði | Dømi |
|---|---|
| TCP-sambandsendapunktur | proxy.example:8080 |
| Mál fyrispurningsins | http://example.com/news?q=proxy |
| Host-høvdi | example.com |
Hetta Node 22-dømið ger skilnaðin týðuligan:
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);
Endapunkturin er staðsetur; vel eitt evni úr HTTP-proxy-listuni til eina almenna HTTP-roynd og kanna svarið. Dømið tømir svarið eftir at hafa prentað støðuna; eitt forrit kann etur líkamann í staðin. Fyrispurningurin verður verandi partur av málinum.
Hví fulla URL'ini hoyrir har
Ein upprunaservari fær vanliga eitt mál sum /news?q=proxy. Ein framleiðandi proxy tørvar eisini málið, tí definerar HTTP/1.1 málið í absolutari form:
GET http://example.com/news?q=proxy HTTP/1.1
Host: example.com
Eftir reglum HTTP/1.1 brúkar ein proxy, sum fær absolutari form, valdið hjá URI'ini, tá ið hon leiðir víðari, og skiftir út ein ósamstemdan móttiknan Host-felt. At senda eitt samstemd Host-høvdi hjá málinum heldur tí útgangandi fyrispurninginum ótvíræðum. Sambandsvertnavnið í Node er millumliðurin, so set høvdið við vilja í staðin fyri at líta á ta sambandsadressuna.
Um váttan er kravd, hoyra váttanarorð proxyarinnar til hennara hóps. Fyrispurningsvalmøguleikin auth í Node ger eitt Authorization-høvdi fyri tilfeingið; hann er ikki ein almennur proxy-innritingsmøguleiki. Brúka ta skránna, sum proxyin krevur, og ein hóskandi proxy-klient, tá ið umbýtið er meira fløkt.
HTTPS leggur eina tunnil afturat
Hetta dømið fevnir um vanliga HTTP-leiðing. Ein vanlig HTTPS-samband gjøgnum eina HTTP-proxy biður fyrst um CONNECT example.com:443 og byrjar so TLS til málið inni í móttiknu tunnilinum. At broyta URL'ina í døminum til HTTPS leggur ikki tey stigini afturat.
Til HTTPS ella eina blandaða byrðu brúka eina viðhaldna proxy-agent ella -sendara við tí tunnil-stuðlinum, sum tørvur er á. Til samsvarandi Node-versjónir er ein møguleiki fetch hjá Undici við ProxyAgent. Halt hetta lítla kjarnaklient-dømið til teir føgini, har tann vanliga HTTP-umbýtið sjálvt er tað, tú skalt stýra ella skilja.