2014-09-02 11 views
17

मैं जेटी -9.2.2 का उपयोग धूमकेतु-3.0.1 के साथ कर रहा हूं। मैं अपने सेटअप में चेतावनी नीचे देख रहा हूँ। यह दिन में 4,5 बार आता है .:जेट्टी-9 चेतावनी: खराब संदेश: 400 अवैध चरित्र

2014-08-28 08:50:53.712:WARN:oejh.HttpParser:qtp607635164-15194: badMessage: 
    400 Illegal character for [email protected]{r=1,a=IDLE,uri=-} 

कोई विवरण नहीं है जो चेतावनी संदेश से डीबग किया जा सकता है। विस्तृत चेतावनी प्रदान करने के लिए मैंने पहले से ही https://bugs.eclipse.org/bugs/show_bug.cgi?id=443049 पर एक अनुरोध लॉग कर दिया है।

इस बीच मैं जानना चाहता हूं कि इस चेतावनी का कारण क्या है? क्या मैं इसे अनदेखा कर सकता हूं या इसके कारण कुछ संदेश खो गए हैं?

उत्तर

5

अद्यतन मई 2017

जेट्टी 9.3+ उपयोगकर्ताओं के लिए, आपको लगता है कि यह प्रतिक्रिया कोड अधिक स्पष्ट करता है एक लॉग संदेश देख सकते हैं।

विवरण के लिए Header parse error after upgrade to Jetty 9.3 देखें।

मूल उत्तर

Bad Message: 400 Illegal Character एक बुरा HTTP अनुरोध की पार्स करने के दौरान हो सकता है।

वह HTTP त्रुटि प्रतिक्रिया है जो क्लाइंट देखता है।

कुछ (सभी नहीं) स्थितियां जिनमें यह हो सकता है।

  • EOL "\ r \ n" (सीआर + वामो) (HTTP कल्पना आवश्यकता) नहीं है
  • HTTP पद्धति टोकन या तो मान्यता प्राप्त है या अवैध खाली स्थान के है यह
  • HTTP संस्करण है के बाद नहीं है नहीं मान्यता प्राप्त या है अमान्य वर्ण
  • HTTP हेडर के नाम कल्पना का पालन नहीं करता
  • HTTP हेडर के मूल्य

यह संदेश का पालन नहीं करता कल्पना पी पर आम है सार्वजनिक (इंटरनेट का सामना) सर्वर।

आपके पास खराब HTTP अनुरोध आ रहे हैं। क्यों?

  • एक वैध HTTP ग्राहक एक बग
  • एक वैध HTTP ग्राहक HTTP कल्पना
  • एक गैर HTTP ग्राहक (जैसे पर गैर-एन्क्रिप्टेड HTTP उपयोग करने का प्रयास के रूप में अपने सर्वर से कनेक्ट करने का प्रयास किया निम्नलिखित नहीं किया गया है एक SSL/TLS/HTTPS पोर्ट, या यहाँ तक कि एक दुर्भावनापूर्ण ग्राहक कमजोरियों
+0

धन्यवाद लेकिन मुझे पुराने jettyv7.6 में कोई त्रुटि नहीं दिखाई दे रही थी। मेरे जेटी सर्वर को 9.2.2 पर अपडेट करने के बाद ये त्रुटियां आईं। तो अनुरोध में कोई विशेष चरित्र है जिसे पहले अनुमति दी गई थी लेकिन अभी नहीं? –

+0

जेटी 7 बनाम जेट्टी 9 के साथ इसका कोई लेना-देना नहीं है, HTTP त्रुटि/चेतावनी का यह स्तर जेटी 7 में भी मौजूद था। –

+0

वास्तव में, जेटी 9 पार्सिंग के साथ अधिक उदार है (यह अद्यतन HTTP आरएफसी, वेबसॉकेट, और HTTP/2 के साथ काम के परिणामस्वरूप है) –

3

जेट्टी है के लिए अपने सिस्टम की जांच करने के प्रयास कर रहा है अपने HTTP पोर्ट के लिए बात करने के लिए प्रयास करते हुए एक एसएमटीपी/IMAP ईमेल क्लाइंट)

  • के रूप में के रूप में अजीब कुछ Cauti विस्तृत त्रुटि संदेशों के बारे में जो उपयोगकर्ता को डेटा भेजते हैं, क्योंकि ये हमले का हिस्सा हो सकते हैं - भले ही टर्मिनल पर echo'd।

    हालांकि, हम बेहतर कर सकते हैं और कुछ स्वच्छता डेटा लॉग कर सकते हैं। बगजिला

  • 22

    पर कार्य करना मुझे एक ही त्रुटि थी, फिर पता चला कि यह http के बजाय यूआरएल में https का उपयोग कर रहा है। (मेरा आवेदन केवल उस समय http का समर्थन करता है।) https को http में बदलने के बाद, इसे हल किया गया था।

    +2

    धन्यवाद !!! यह मुझे –

    +0

    डिबगिंग की एक लंबी रात बचाता है हमारी टीम ने इसे पहले देखा था ... – PragmaticProgrammer

    0

    यह त्रुटि हो सकती है, क्योंकि यह मेरे लिए एक मूर्ख छोटी गलती से थी।

    मेरे स्थानीयहोस्ट जेटी उदाहरण पर परीक्षण करते समय, मुझे एक बहुत ही समान 400 अवैध चरित्र संदेश प्राप्त हुआ। तब मुझे एहसास हुआ कि क्यों। मैं बस अपने स्थानीय घाट पर आवेदन पता मान लिया था:

    https://localhost:8080

    जबकि सही पता असुरक्षित था:

    http://localhost:8080

    उसके बाद कोई समस्या नहीं है।

    +0

    ओह - मुझे खेद है - मुझे लगता है कि मेरा उत्तर प्रभावी रूप से एस डु द्वारा ऊपर दिया गया है। मेरा यह जवाब शायद हटा दिया जाना चाहिए। –

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