2011-01-25 1 views
18

वेब पर अंतःक्रियाशीलता के मामले में हमारे पास अक्सर कुछ समस्याएं होती हैं। ब्राउज़र विक्रेताओं के लिए इन मुद्दों में से एक गलत वर्तनी Connection HTTP शीर्षलेख है। इन दो रूपों द्वारा सबसे आम त्रुटियां दी जाती हैं।घनत्व और एनएनसीक्शन HTTP शीर्षलेख

nnCoection: 
Cneonction: 

इस बारे में कुछ लेख, Fun with HTTP headers सहित किया गया है। अक्सर यह अवधि के दौरान हो रहा है, तो गायब हो जाता है। ऐसा लगता है कि उनमें से कुछ लोड बैलेंसर्स जैसे this example: नेटस्केकर उपकरण द्वारा बनाए जाते हैं।

क्या आप इन मुद्दों को बनाने वाले हार्डवेयर या सॉफ़्टवेयर के किसी अन्य उदाहरण को जानते हैं?

अद्यतन यहां साइट के अन्य लोगों के बीच एक उदाहरण है जो एक अच्छा Connection HTTP शीर्षलेख वापस नहीं भेजता है।

curl -sI ehg-nokiafin.hitbox.com 
HTTP/1.1 200 OK 
Date: Tue, 25 Jan 2011 20:35:45 GMT 
Server: Hitbox Gateway 9.3.6-rc1 
P3P: policyref="/w3c/p3p.xml", CP="NOI DSP LAW NID PSA ADM OUR IND NAV COM" 
Cneonction: close 
Pragma: no-cache 
Cache-Control: max-age=0, private, proxy-revalidate 
Expires: Tue, 25 Jan 2011 20:35:46 GMT 
Content-Type: text/plain 
Content-Length: 23 

अद्यतन 2011-01-26

एडब्ल्यूएस के बारे में अमेज़न मंच पर, एक thread के बारे में nnCoection है। एक टिप्पणी कहते हैं:

FYI करें, कारण यह शब्द कनेक्शन है ताकि इंटरनेट चेक-राशि (एक सरल योग) अभी भी कहते misspells, इस तरह से परिवर्तन पैकेट स्तर पर हो सकता है । तो यह पूरी तरह से हैडर हटा दिया, यह स्टाल प्रतिक्रिया जब तक शीर्ष लेख पूरी तरह से पढ़ा जाता था अग्रेषण करने के लिए होता है, इसलिए यह हेडर पुनर्लेखन सकता है, recompute चेकसम और फिर साथ भेजें।

sum(ord(c) for c in "Connection") 

और

sum(ord(c) for c in "nnCoection") 

साथ

दोनों देता है 1040

उत्तर

9

आप यकीन है कि यह एक वास्तविक मुद्दा है कर रहे हैं? लिंक्ड आलेख से पता चलता है कि हेडर के इस प्रकार "उद्देश्य पर गलत वर्तनी" हैं ताकि लोड बैलेंसर, रिवर्स प्रॉक्सी या अन्य मिडलबॉक्स सर्वर की इच्छाओं को हरा सकता है कि कनेक्शन को जिंदा रखा जा सके, टीसीपी स्ट्रीम स्थिति में डेल्टा ट्रैक किए बिना कनेक्शन का जीवन कुछ ऐसे सर्वरों को माइग्रेट करने के लिए अन्य सर्वरों पर रखे हुए जीवित कनेक्शन को मजबूर कर, एक डाउन और पुनर्प्राप्त सर्वर को सक्रिय कर्तव्य में वापस लाने के लिए वास्तव में आवश्यक हो सकता है।

यदि आपके पास प्रोटोकॉल है जो HTTP Connection: keep-alive पर फ़ंक्शन (cough) पर निर्भर है, तो आप शायद इसे गलत कर रहे हैं। लोड-बैलेंसर के मामले में

+0

, दूसरा कनेक्शन हेडर है। लेकिन ऐसे कई मामले हैं जहां कुछ और नहीं भेजा जाता है। मैं एक उदाहरण देने के लिए पोस्ट संपादित करेंगे। – karlcow

+0

अच्छा लगता है। मुझे लगता है कि इन्हें टीसीपी लोड-बैलेंसर्स द्वारा गलत वर्तनी दी गई है ताकि ए) ग्राहक उन्हें अनदेखा कर सकें और बी) उन्हें चेकसम को फिर से समझना नहीं है। यह एक जानबूझकर है, हालांकि इसे करने का हैकिश तरीका है। मैंने इसे अन्य मामलों में पहले देखा है। – MarkR

+0

@MarkR चेकसम के बारे में अच्छा बिंदु।दोनों गलत वर्तनी परिणामस्वरूप 16-बिट शब्दों को स्वैप करने से परिणाम मिलता है, और जिसका उपयोग किया जाता है, इस पर निर्भर करता है कि प्रारंभिक सी शब्द सीमा पर गिरती है या नहीं; चूंकि टीसीपी 16-बिट शब्दों के एक पूरक-पूरक चेकसम का उपयोग करता है, इसलिए दो 16-बिट शब्दों का आदान-प्रदान चेकसम को अमान्य नहीं करेगा। दूसरी तरफ, आप शायद एचटीटीपीएस के साथ खेले जाने वाले ऐसे शेंगेनियां नहीं देखेंगे। –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^