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

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

ਟਾਰਗੇਟ ਚੋਣ, ਅਪਸਟਰੀਮ ਬੇਨਤੀ ਅਤੇ ਡਾਊਨਸਟਰੀਮ ਸਥਿਤੀ ਤੇ ਹੈਡਰ ਤਿਆਰ ਕਰਨ ਤੋਂ ਬਾਅਦ ਇਹ ਬਾਡੀ ਰਾਹ ਵਰਤੋ। Node ਸਟਰੀਮ ਆਮ ਤੌਰ 'ਤੇ Buffer ਦਿੰਦੇ ਹਨ; ਚਿੱਤਰਾਂ ਜਾਂ ਹੋਰ ਨਾ-ਬਦਲਦੇ ਬਾਈਨਰੀ ਸਮੱਗਰੀ ਲਈ ਉਹਨਾਂ ਨੂੰ ਸਟਰਿੰਗ ਵਿੱਚ ਇਕੱਠਾ ਨਾ ਕਰੋ।

pipeline ਬੈਕਪ੍ਰੈਸ਼ਰ ਦਾ ਤਾਲਮੇਲ ਕਰਦਾ ਹੈ ਅਤੇ ਫੇਲ੍ਹਤਾਂ ਫੈਲਾਉਂਦਾ ਹੈ। ਗਲਤੀ ਸਮੇਂ ਇਹ ਮੰਜ਼ਿਲ ਨੂੰ ਨਸ਼ਟ ਕਰ ਸਕਦਾ ਹੈ, ਇਸ ਲਈ ਇਹ ਨਾ ਮੰਨੋ ਕਿ ਇਸ ਤੋਂ ਬਾਅਦ ਹੋਰ HTTP ਗਲਤੀ ਪ੍ਰਤੀਕਿਰਿਆ ਭੇਜੀ ਜਾ ਸਕਦੀ ਹੈ। ਇਹ ਹਿੱਸਾ ਪੂਰਾ ਪਰਾਕਸੀ ਸਰਵਰ ਨਹੀਂ ਹੈ।

ਲੰਘਣ ਵਾਲੇ ਬਾਈਟਾਂ ਲਈ, ਮੀਡੀਆ ਕਿਸਮ ਅਤੇ ਸਮੱਗਰੀ ਐਨਕੋਡਿੰਗ ਵਰਗਾ ਸੰਬੰਧਿਤ ਪ੍ਰਸਤੁਤੀ ਮੈਟਾਡੇਟਾ ਸੰਭਾਲੋ, ਅਤੇ ਹਾਪ-ਖਾਸ ਖੇਤਰ ਫਾਰਵਰਡਿੰਗ ਨਿਯਮਾਂ ਰਾਹੀਂ ਸੰਭਾਲੋ। gzip ਬਾਈਟ ਅਤੇ ਮਿਲਦੇ ਪ੍ਰਤੀਕਿਰਿਆ ਹੈਡਰ ਦੀ ਤੁਲਨਾ ਐਨਕੋਡਡ ਬਨਾਮ ਡੀਕੋਡਡ ਪ੍ਰਸਤੁਤੀ ਦੀ ਚੋਣ ਦਿਖਾਉਂਦੀ ਹੈ।

ਜਾਣਬੁੱਝ ਕੇ HTML ਮੁੜ-ਲਿਖਣ ਲਈ ਹੋਰ ਰਾਹ ਚਾਹੀਦਾ ਹੈ: ਇਸ ਦੀ ਮੀਡੀਆ ਕਿਸਮ ਪਛਾਣੋ, ਕੰਪਰੈਸ਼ਨ ਅਤੇ ਅੱਖਰ ਸੈੱਟ ਸੰਭਾਲੋ, ਟੈਕਸਟ ਬਦਲੋ ਅਤੇ ਨਵੇਂ ਬਾਈਟਾਂ ਲਈ ਮੈਟਾਡੇਟਾ ਬਣਾਓ। ਪੁਰਾਣਾ Content-Length ਬਦਲੀ ਹੋਈ ਬਾਡੀ ਦਾ ਵਰਣਨ ਨਹੀਂ ਕਰ ਸਕਦਾ।

Buffer.concat ਪੂਰੀ ਬਫਰਿੰਗ ਦੀ ਲੋੜ ਹੋਣ 'ਤੇ ਬਾਈਨਰੀ ਸਮੱਗਰੀ ਸੰਭਾਲ ਸਕਦਾ ਹੈ, ਪਰ ਪੂਰੀ ਬਾਡੀ ਮੈਮੋਰੀ ਵਿੱਚ ਰੱਖਦਾ ਹੈ। ਲੰਘਦੀ ਚਿੱਤਰ ਸਟਰੀਮ ਨੂੰ ਉਹ ਖਰਚਾ ਲੋੜੀਂਦਾ ਨਹੀਂ।

ਸੰਬੰਧਿਤ ਲੇਖ