Umugqa wesicelo ohambisa i-HTTP ye-Node nge-proxy
Yakha isicelo se-HTTP se-proxy esijwayelekile ngeklayenti eyinhloko ye-Node ngokuhlukanisa iphoyinti lokuxhumana, umgomo ophelele kanye nesihloko se-Host.
Esicelweni se-HTTP esijwayelekile esidlula ku-proxy ebheke phambili, i-Node ixhumanisa ne-proxy futhi ithumela i-URL yendawo ekuyiwa kuyo emugqeni wesicelo. Izinto ezintathu zichaza leso sicelo esisodwa:
| Inani | Isibonelo |
|---|---|
| Iphoyinti lokuxhumana le-TCP | proxy.example:8080 |
| Umgomo wesicelo | http://example.com/news?q=proxy |
| Isihloko se-Host | example.com |
Lesi sibonelo se-Node 22 senza ukuhlukanisa kucace:
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);
Iphoyinti liyindawo ebekelwe; khetha umuntu othile ovela ohlangothini lwe-proxy ye-HTTP ukuze uhlole i-HTTP yomphakathi bese uhlola impendulo yakhe. Isibonelo sikhulula impendulo ngemuva kokuphrinta isimo; uhlelo lokusebenza lungasebenzisa umzimba esikhundleni salokho. Umbuzo uhlala uyingxenye yomgomo wesicelo.
Kungani i-URL ephelele ifanele ibe lapho
Iseva yomthombo ivamise ukuthola umgomo ofana ne-/news?q=proxy. I-proxy ebheke phambili nayo idinga indawo ekuyiwa kuyo, ngakho i-HTTP/1.1 ichaza umgomo ngendlela ephelele:
GET http://example.com/news?q=proxy HTTP/1.1
Host: example.com
Ngaphansi kwemithetho ye-HTTP/1.1, i-proxy ethola indlela ephelele isebenzisa igunya le-URI lapho idlulisela futhi ishintsha inkambu ye-Host etholakele engahambisani. Ukuthumela isihloko se-Host somgomo esihambisanayo kusigcina isicelo esiphumayo singacaci kahle. Igama lomsingathi woxhumano lwe-Node ungumxhumanisi, ngakho setha isihloko ngamabomu esikhundleni sokuthembela kulelo kheli lokuxhumana.
Uma ukufakazela ubuqiniso kudingeka, imininingwane ye-proxy ingeyegxathu layo. Inketho yesicelo auth ye-Node yakha isihloko se-Authorization sensiza; akusiyo inketho evamile yokungena ku-proxy. Sebenzisa uhlelo oludingwa i-proxy nekliyenti ye-proxy efanele lapho ukushintshana kuyinkimbinkimbi kakhulu.
I-HTTPS yengeza umhubhe
Lesi sibonelo sihlanganisa ukudlulisa i-HTTP okujwayelekile. Uxhumano lwe-HTTPS ngokusebenzisa i-proxy ye-HTTP lujwayelekile lucela i-CONNECT example.com:443 kuqala, bese luqala i-TLS kumgomo ngaphakathi komhubhe owamukelwe. Ukushintsha i-URL yesibonelo ibe yi-HTTPS akwengezi lezo zigaba.
Nge-HTTPS noma umthwalo oxubile, sebenzisa i-ejenti noma isithumeli se-proxy esigcinwayo esinosekelo lomhubhe oludingekayo. Ngezinguqulo ze-Node ezihambisanayo, enye inketho i-fetch ye-Undici ne-ProxyAgent. Gcina lesi sibonelo esincane sekliyenti eyinhloko sezimo lapho ukushintshana kwe-HTTP okujwayelekile kukodwa kuyikho okudinga ukukulawula noma ukukuqonda.