const { pipeline } = require('node:stream');

pipeline(upstreamResponse, clientResponse, (error) => {
  if (error) console.error('Proxy response failed:', error);
});

Tumia njia hii ya mwili baada ya kuchagua lengo, ombi kwa chanzo na maandalizi ya hali na vichwa kuelekea mteja. Mitiririko ya Node kwa kawaida hutoa Buffer; usizikusanye katika mfuatano wa herufi kwa picha au maudhui mengine ya binary yasiyobadilika.

pipeline huratibu shinikizo la nyuma na hueneza hitilafu. Hitilafu inaweza kuharibu lengwa, kwa hiyo usidhani kuwa jibu lingine la hitilafu ya HTTP linaweza kutumwa baada ya hapo. Kipande hiki si seva kamili ya proksi.

Kwa baiti zinazopita, hifadhi metadata husika ya uwakilishi kama aina ya midia na usimbuaji wa maudhui, na shughulikia sehemu mahususi za hop kupitia kanuni za upelekaji. Ulinganisho wa baiti za gzip na vichwa vya jibu vinavyolingana unaonyesha uchaguzi kati ya uwakilishi uliosimbwa na uliofumbuliwa.

Kuandika upya HTML kwa makusudi kunahitaji njia nyingine: tambua aina ya midia, shughulikia ukandamizaji na seti ya herufi, badilisha maandishi na uzalishe metadata kwa baiti mpya. Content-Length ya zamani haiwezi kuelezea mwili uliobadilika.

Buffer.concat inaweza kuhifadhi maudhui ya binary wakati buffering kamili inahitajika, lakini huhifadhi mwili wote kwenye kumbukumbu. Mtiririko wa picha unaopita hauhitaji gharama hiyo.

Makala zinazohusiana