HTTP Connection हेडर को अल्पविराम-पृथक टोकन के रूप में पार्स करें
जब कोई फ़ॉरवर्ड प्रॉक्सी एक ही HTTP/1.1 फ़ील्ड में keep-alive और Upgrade देखता है, तो हर केस-असंवेदनशील Connection विकल्प को पार्स करें।
ये मान किसी एक मोड की प्रतिस्पर्धी वर्तनियाँ नहीं हैं:
Connection: Upgrade
Connection: keep-alive, Upgradeदूसरा दो कनेक्शन विकल्प सूचीबद्ध करता है। HTTP Connection को अल्पविराम-पृथक सूची के रूप में परिभाषित करता है, जिसमें विकल्प के नाम केस-असंवेदनशील होते हैं। पूरे मान की तुलना सटीक Upgrade स्ट्रिंग से करने वाला कोड उस विकल्प वाली वैध सूची को चूक जाता है।
सामान्य फ़ॉरवर्डिंग के लिए, एक HTTP मध्यस्थ आने वाले फ़ील्ड को पार्स करता है, उसके विकल्पों द्वारा नामित फ़ील्ड हटाता है, फिर Connection को स्वयं हटाता है या आगे के कनेक्शन के लिए अपने नियंत्रण विकल्पों से बदल देता है।
केवल हार्डकोड किया गया Keep-Alive फ़ील्ड हटाना पर्याप्त नहीं है। कोई संदेश सूची में कनेक्शन-विशिष्ट कोई अन्य फ़ील्ड नामित कर सकता है, और वह फ़ील्ड सामान्य फ़ॉरवर्डिंग में नहीं रिसना चाहिए।
प्रोटोकॉल अपग्रेड का समर्थन करने के लिए दोनों कनेक्शनों और नए प्रोटोकॉल का सोच-समझकर प्रबंधन आवश्यक है। आने वाले Upgrade हेडर को आँख मूँदकर कॉपी करना उस हैंडऑफ़ का कार्यान्वयन नहीं है।
जब एक ब्राउज़र काम करता है और दूसरा विफल होता है, तो मध्यस्थ के दोनों ओर वास्तविक फ़ील्ड मानों की तुलना करें। एक टोकन और दो टोकन की सूची के बीच का अंतर ब्राउज़र को किसी अन्य ब्राउज़र का सटीक स्वरूपण अनुकरण करने की आवश्यकता के बिना पार्सर त्रुटि उजागर कर सकता है।
यह उन HTTP संदेशों से संबंधित है जिन्हें प्रॉक्सी पार्स करता है। सामान्य HTTPS CONNECT सुरंग एन्क्रिप्टेड वेबसाइट का Connection फ़ील्ड उस प्रॉक्सी के सामने नहीं खोलती।