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 पूर्ण बफरिंग आवश्यक असताना बायनरी सामग्री जतन करू शकते, परंतु संपूर्ण बॉडी स्मृतीत ठेवते. पास होणाऱ्या प्रतिमा स्ट्रीमला तो खर्च आवश्यक नाही.

संबंधित लेख