Node.js प्रोक्सीमा बाइनरी छवि प्रतिक्रियाहरू सुरक्षित राख्नुहोस्
Node फर्वार्ड प्रोक्सीमार्फत बाइनरी बडीहरू प्रवाहित गर्नुहोस् र पाठ डिकोडिङ जानाजान गरिएका पाठ रूपान्तरणका लागि मात्र राख्नुहोस्।
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 पूर्ण बफरिङ आवश्यक हुँदा बाइनरी सामग्री सुरक्षित राख्न सक्छ, तर सम्पूर्ण बडी स्मृतिमा राख्छ। पास हुने छवि स्ट्रिमलाई त्यो लागत आवश्यक पर्दैन।