2012-01-03 11 views
37

द्वारा जोड़े गए ब्राउज़र बग हेडर से बचें, मुझे यह हेडर अपाचे से प्रतिक्रिया में जोड़ा गया है। क्या नए युग ब्राउज़र में इसका कोई महत्व है; या नेटस्केप के पुराने संस्करणों में बग को रोकने के लिए यह केवल वहां है। अजीब लगता है।एक्स-पैड: अपाचे

संपादित

मैं अपने ऐप्लिकेशन पर किसी निष्पादन परीक्षण कर रहा था, जब मैंने देखा कि JMeter प्रतिक्रिया पाठ में, वहाँ इस अजीब शीर्ष लेख है कि वापस आ जाता था। यह कहा:

X-pad: avoid browser bug 

यह बात है! तो मैंने कुछ googling की कोशिश की, और ऐसा लगता है कि नेटस्केप ब्राउज़र 'बग के लिए जोड़ा गया हेडर जैसा लगता है। वैसे भी, मैं अभी भी उत्सुक हूं, क्योंकि हम ब्राउज़र के उन संस्करणों से बहुत दूर हैं (शुक्रिया), क्या वहां एक ठोस कारण है कि यह अभी भी वहां है। हम apache2 का उपयोग करते हैं।

उम्मीद है कि उन विवरणों में मदद मिलेगी।

चीयर्स

+1

यह सवाल गायब हो जाएगा सकता है गंभीरता से लाभ कुछ विवरणों के साथ - _What_ शीर्षलेख और सामग्री विशेष रूप से? (शीर्षक को पार्स करना मुश्किल है। प्रश्न के _body_ में सामग्री डालें ...) - अपाचे का कौन सा संस्करण आपको इस हेडर को छोड़ देता है? किस परिस्थितियों में? यह एक साफ खोज की तरह लगता है लेकिन लगभग विस्तार से नहीं जो इसे शानदार बना देगा। – sarnold

+0

इंगित करने के लिए धन्यवाद कि iur sarnold; यह वास्तव में मेरे हिस्से पर एक मिस था। यहां अधिक जानकारी जोड़ा गया। – Priyank

+0

ओह हाँ, बहुत बेहतर, धन्यवाद। :) – sarnold

उत्तर

61

नहीं, यह एक अल्पविकसित हैडर आजकल है; ऐसा कहने के लिए, इसे ब्राउज़र में एक बग के आसपास काम करने के लिए रखा गया था जो अप्रचलित है (आईई 6 की तुलना में कई पीढ़ी पुरानी है - बग की रिपोर्ट 1 99 7 से 15 साल पहले तय की गई थी!) और कोई भी इसका उपयोग नहीं करता है।

The patch to remove it 2008 से अपाचे के एसवीएन में है, लेकिन यह स्पष्ट रूप से अभी भी सभी वितरणों के लिए प्रचारित नहीं हुआ है (साथ ही कुछ साइटें अपाचे के गैर-अद्यतन संस्करणों का उपयोग कर सकती हैं)।

यहाँ शीर्ष लेख के लिए टिप्पणी है, from the source उठाया:

/* Navigator versions 2.x, 3.x and 4.0 betas up to and including 4.0b2 
* have a header parsing bug. If the terminating \r\n occur starting 
* at offset 256, 257 or 258 of output then it will not properly parse 
* the headers. Curiously it doesn't exhibit this problem at 512, 513. 
* We are guessing that this is because their initial read of a new request 
* uses a 256 byte buffer, and subsequent reads use a larger buffer. 
* So the problem might exist at different offsets as well. 
* 
* This should also work on keepalive connections assuming they use the 
* same small buffer for the first read of each new request. 
* 
* At any rate, we check the bytes written so far and, if we are about to 
* tickle the bug, we instead insert a bogus padding header. Since the bug 
* manifests as a broken image in Navigator, users blame the server. :(
* It is more expensive to check the User-Agent than it is to just add the 
* bytes, so we haven't used the BrowserMatch feature here. 
*/ 
2

मुझे पता है कि इस सवाल का जवाब स्वीकार किया गया है, लेकिन अभी भी मुझे लगता है कि इस php चल उपयोगकर्ताओं के लिए उपयोगी होगा।
यदि आप एक PHP उपयोगकर्ता हैं और आपको यह हेडर मिल रहा है। आप कस्टम "एक्स-पावर्ड-बाय" हेडर का उपयोग करके इसे बंद कर सकते हैं।
उदाहरण के लिए:
header('X-Powered-By: Powerful Management'); आप भी इसे इस तरह
header_remove('X-Pad');, हटा सकते हैं कभी कभी कि शीर्ष लेख भी खाली करने के लिए स्थापित कर उसे निकाल देता है:
header('X-Pad:')
और बेम अपने एक्स-पैड हैडर

+1

मैं एक्स-पैड हेडर में भाग गया और (सिर्फ इसलिए कि मैं उत्सुक था, यह वास्तव में कोई नुकसान नहीं करता) इसे हटाने की कोशिश की। आपका रास्ता काम नहीं करता है। निश्चित रूप से, यदि एक्स-पैड को एक अनुरोध में जोड़ा गया था और आप एक्स-पावर्ड-बाय हेडर जोड़ते हैं, तो यह उस विशिष्ट अनुरोध के लिए जा सकता है - क्योंकि नया हेडर अब पैडिंग के रूप में कार्य करता है, इसलिए लाइनब्रेक 256 पर नहीं है/257 अब और। हालांकि एक और अनुरोध में (जिसमें एक्स-पैड के नए एक्स-पावर्ड-हेडर के बिना एक्स-पैड नहीं था), अब यह दिखाई दे सकता है क्योंकि पहला लाइनबैक अब 256 पर स्थानांतरित कर दिया गया था। –

+1

मेरे लिए, PHP (हेडर ('एक्स-पैड:') का उपयोग करके एक्स-पैड को खाली मूल्य पर सेट करना) इससे छुटकारा पाने के लिए काम किया - अपाचे इसे स्वीकार करता है और इसे ओवरराइड नहीं करता है (यह किसी अन्य ऑटो- सामग्री-लंबाई की तरह उत्पन्न हेडर)। क्या कोई इसे सत्यापित कर सकता है? –