Päringurida, mis suunab Node'i HTTP puhverserveri kaudu
Koostage Node'i põhikliendiga tavaline HTTP-puhverserveri päring, eraldades ühenduse lõpp-punkti, absoluutse sihtkoha ja Host-päise.
Tavalise edastava puhverserveri kaudu tehtava HTTP-päringu puhul ühendub Node puhverserveriga ja saadab sihtkoha URL-i päringureale. Kolm väärtust kirjeldavad seda üht päringut:
| Väärtus | Näide |
|---|---|
| TCP-ühenduse lõpp-punkt | proxy.example:8080 |
| Päringu sihtkoht | http://example.com/news?q=proxy |
| Host-päis | example.com |
See Node 22 näide teeb eraldamise selgeks:
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);
Lõpp-punkt on kohatäide; valige avaliku HTTP-testi jaoks HTTP-puhverserverite loendist kandidaat ja kontrollige selle vastust. Näide tühjendab vastuse pärast oleku printimist; rakendus võib selle asemel keha tarbida. Päring jääb päringu sihtkoha osaks.
Miks täis-URL sinna kuulub
Päritolusever saab tavaliselt sihtkoha kujul /news?q=proxy. Edastav puhverserver vajab ka sihtkohta, seetõttu määratleb HTTP/1.1 sihtkoha absoluutses vormis:
GET http://example.com/news?q=proxy HTTP/1.1
Host: example.com
HTTP/1.1 reeglite kohaselt kasutab absoluutse vormi saanud puhverserver edastamisel URI autoriteeti ja asendab ebajärjekindla saadud Host-välja. Järjekindla sihtkoha Host-päise saatmine hoiab väljuva päringu siiski üheselt mõistetavana. Node'i ühenduse hostinimi on vahendaja, seega määrake päis teadlikult, selle asemel et sellele ühenduse aadressile lootma jääda.
Kui autentimine on vajalik, kuuluvad puhverserveri volitused selle hüppele. Node'i päringuvalik auth loob ressursi jaoks Authorization-päise; see ei ole üldine puhverserveri sisselogimisvalik. Kui vahetus on keerukam, kasutage puhverserveri nõutud skeemi ja sobivat puhverserveri klienti.
HTTPS lisab tunnel
See näide hõlmab tavalist HTTP-edastust. Tüüpiline HTTPS-ühendus HTTP-puhverserveri kaudu küsib esmalt CONNECT example.com:443 ja seejärel alustab TLS-i sihtkohaga aktsepteeritud tunneli sees. Näite URL-i muutmine HTTPS-iks neid etappe ei lisa.
HTTPS-i või segatöökoormuse jaoks kasutage vajaliku tunnelitoega hooldatavat puhverserveri agenti või saatjat. Ühilduvate Node'i versioonide jaoks on üks võimalus Undici fetch koos ProxyAgentiga. Hoidke seda väikest põhikliendi näidet juhtudeks, kus tavaline HTTP-vahetus ise on see, mida peate kontrollima või mõistma.