Ar gyfer cais HTTP cyffredin drwy brocsi ymlaen, mae Node yn cysylltu â'r procsi ac yn anfon URL y gyrchfan yn llinell y cais. Mae tri gwerth yn disgrifio'r un cais hwnnw:

GwerthEnghraifft
Pwynt cysylltu TCPproxy.example:8080
Targed y caishttp://example.com/news?q=proxy
Pennawd Hostexample.com

Mae'r enghraifft Node 22 hon yn gwneud y gwahanu'n amlwg:

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

Mae'r pwynt cysylltu yn ddeiliad lle; dewiswch ymgeisydd o'r rhestr procsis HTTP ar gyfer prawf HTTP cyhoeddus a gwiriwch ei ymateb. Mae'r enghraifft yn draenio'r ymateb ar ôl argraffu ei statws; gall cymhwysiad ddefnyddio'r corff yn lle hynny. Mae'r ymholiad yn parhau'n rhan o darged y cais.

Pam mae'r URL llawn yn perthyn yno

Mae gweinydd tarddiad fel arfer yn derbyn targed fel /news?q=proxy. Mae angen y gyrchfan ar brocsi ymlaen hefyd, felly mae HTTP/1.1 yn diffinio'r targed ar ffurf absoliwt:

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

O dan reolau HTTP/1.1, mae procsi sy'n derbyn ffurf absoliwt yn defnyddio awdurdod yr URI wrth anfon ymlaen ac yn disodli maes Host anghyson a dderbyniwyd. Mae anfon pennawd Host cyrchfan cyson yn dal i gadw'r cais allan yn ddiamwys. Enw gwesteiwr y cysylltiad yn Node yw'r cyfryngwr, felly gosodwch y pennawd yn fwriadol yn lle dibynnu ar y cyfeiriad cysylltu hwnnw.

Os oes angen dilysu, mae manylion procsi yn perthyn i'w hop ei hun. Mae opsiwn cais auth Node yn creu pennawd Authorization ar gyfer yr adnodd; nid yw'n opsiwn mewngofnodi procsi cyffredinol. Defnyddiwch y cynllun y mae'r procsi ei angen a chliant procsi addas pan fo'r cyfnewid yn fwy cymhleth.

Mae HTTPS yn ychwanegu twnnel

Mae'r enghraifft hon yn cwmpasu anfon HTTP plaen. Mae cysylltiad HTTPS drwy brocsi HTTP nodweddiadol yn gofyn am CONNECT example.com:443 yn gyntaf, yna'n cychwyn TLS i'r gyrchfan y tu mewn i'r twnnel a dderbyniwyd. Nid yw newid URL yr enghraifft i HTTPS yn ychwanegu'r camau hynny.

Ar gyfer HTTPS neu lwyth cymysg, defnyddiwch asiant neu ddosbarthwr procsi a gynhelir gyda'r cymorth twnnel gofynnol. Ar gyfer fersiynau Node cydnaws, un opsiwn yw fetch Undici gyda ProxyAgent. Cadwch yr enghraifft fach hon o'r cliant craidd ar gyfer achosion lle mai'r cyfnewid HTTP plaen ei hun yw'r hyn y mae angen i chi ei reoli neu ei ddeall.

Erthyglau cysylltiedig