सवाल टोमकैट में अधिकतम यूआरएल लंबाई क्या है?


और यह विन्यास योग्य है? क्या मैं टॉमकैट सेट अप कर सकता हूं ताकि एक यूआरएल कह सके, 200 के क्वेरी पैराम्स को सफलतापूर्वक निहित सर्वलेट के माध्यम से चला जाता है?

हां, मुझे पता है कि आपके पास बहुत सारे डेटा होने पर POST का उपयोग करना चाहिए; यह इस विशेष मामले में एक कम सुखद विकल्प है। निहित एप्लिकेशन (एक खोज इंजन) एक खोज करने के लिए एक जीईटी अनुरोध की उम्मीद है।


42
2017-08-20 15:42


मूल




जवाब:


आप टॉमकैट / conf / server.xml की HTTP / 1.1 कनेक्टर एंट्री संपादित कर सकते हैं, और अधिकतम अधिकतम 8K या तो 64K तक बढ़ने के लिए maxHttpHeaderSize = "65536" जोड़ सकते हैं। मुझे कल्पना है कि आप इस संख्या को जितना आवश्यक हो उतना ऊंचा कर सकते हैं, लेकिन फिलहाल 64 के लिए मेरी जरूरतों के लिए पर्याप्त है इसलिए मैंने कोशिश नहीं की है।

<Connector port="8080" maxHttpHeaderSize="65536" protocol="HTTP/1.1" ... />

56
2017-08-24 17:18



बहुत उपयोगी, सोलर के साथ मेरी समस्या हल हो गई। ऐसा लगता है कि हम डिफ़ॉल्ट 8192 सीमा पर खरोंच कर रहे थे server.xml कॉन्फ़िगरेशन, बिना ध्यान दिए, और अचानक इसे मारा। दर्दनाक गोचाचा: इसके बारे में कहीं भी कुछ भी लॉग नहीं किया गया था, कनेक्शन चुपचाप गिरा दिए गए थे (मुझे अब HTTP स्थिति याद नहीं है)। मैं प्रलेखन पर ठोकर खाई tomcat.apache.org/tomcat-5.5-doc/config/http.html इससे पहले, हालांकि मैंने इसे संबद्ध नहीं किया था maxHttpHeaderSize इसके नाम से और न ही इसका वर्णन जीईटी अनुरोध क्वेरी पैरामीटर से भी संबंधित है। - mark
हमने सोलर में भी एक ही सीमा को मारा, कुछ भी नहीं बल्कि एक खाली सफेद पृष्ठ ... :( maxHttpHeaderSize ने चाल की। - user85116
यहाँ वही :) बहुत उपयोगी युक्ति, धन्यवाद। - Stefan
मुझे लगता है कि maxHttpHeaderSize = "100000" संभव नहीं है, यह 1024 से गुणा होना चाहिए। मैंने maxHttpHeaderSize = "1048576" को बदल दिया है जो 1024 * 1024 है और यह अभी भी काम नहीं कर रहा है।
एक स्वीकृत उत्तर, "maxHttpHeaderSize =" 65536 " काम नहीं करता यह पहले से काम किया था बग टॉमकैट में यूआरएल / यूआरआई के पास HTTP हेडर के साथ कुछ लेना देना नहीं है। - Fuad Efendi


एक HTTP जीईटी अनुरोध की लंबाई आरएफसी 2616 द्वारा लागू नहीं है, क्योंकि माइक्रोसॉफ्ट इसके लिए रिपोर्ट करता है आईई अधिकतम लंबाई समर्थन पृष्ठ

इसलिए, अधिकतम जीईटी लंबाई एक ग्राहक (ब्राउज़र) संबंधित मुद्दा है। यदि आपके ऐप का उपयोग लोगों द्वारा किया जाता है तो आप किसी दिए गए ब्राउज़र का उपयोग करने के लिए मजबूर हो सकते हैं, तो आप आसानी से यह पता लगा सकते हैं कि इस ब्राउज़र का समर्थन कितना लंबा है।

हर मामले में मैं एक नज़र डालने का सुझाव देता हूं Wikypedia प्रश्न स्ट्रिंग पर उन ब्राउज़र संबंधी मुद्दों के बारे में पृष्ठ (सर्वर साइड ऐप्स के लिए पैरामीटर लाने के अनुरोध का हिस्सा, अंततः "?" के बाद एक अनुरोध में मौजूद है।

बेशक शायद सर्वर की तरफ, टोमकैट भी एक सीमा लगाएगा। आरएफसी का कहना है:

सर्वर यूआरआई को संभालने में सक्षम होना चाहिए   वे किसी भी संसाधन की सेवा करते हैं, और चाहिए   असंबद्ध के यूआरआई को संभालने में सक्षम हो   लंबाई अगर वे जीईटी-आधारित फॉर्म प्रदान करते हैं   जो ऐसे यूआरआई उत्पन्न कर सकता है। ए   सर्वर 414 लौटा सकता है (अनुरोध-यूआरआई   बहुत लंबा) स्थिति अगर एक यूआरआई लंबा है   सर्वर से संभाल सकता है (देखें   खंड 10.4.15)।

इसलिए यदि आप टॉमकैट की सीमा तय कर सकते हैं और यह पता लगा सकते हैं कि यह सीमा कितनी देर तक त्रुटि दे रही है और एक आधे से नीचे जा रही है, तो यह सीमा अलग-अलग अनुरोधों का उपयोग कर रही है। फिर सटीक मूल्य को तेज़ी से ढूंढने के लिए बायसेक्शन विधि का उपयोग करें।


5
2017-08-20 15:59



अल्बर्ट, मुझे पता था कि टॉमकैट की बॉक्स से बाहर सीमा थी (8K की तरह कुछ); मुझे आश्चर्य हुआ कि क्या एक सीमा थी कि कॉन्फ़िगरेशन भी खत्म नहीं हो सका। - Michael Gundlach


एजेपी कनेक्टर के लिए, आपको समायोजित करने की आवश्यकता है packetSize विशेषता:

<Connector port="8009" 
    protocol="AJP/1.3" 
    packetSize="65536" />

2
2018-02-26 12:34



यदि आप mod_proxy का उपयोग कर रहे हैं तो आपको सेट करने की आवश्यकता है ProxyIOBufferSize 65536  आपके httpd कॉन्फ़िगरेशन में भी। - suicide


आप टॉमकैट सर्वर (.. \ Tomcat 6.0 \ conf \ server.xml) पर कॉन्फ़िगरेशन बदल सकते हैं

<कनेक्टर पोर्ट = "8983" maxHttpHeaderSize = "100000" प्रोटोकॉल = "HTTP / 1.1"                connectiontimeout = "20000"                redirectPort = "8443" />


1
2018-04-08 11:37



आप इस कोड को अपने कोड स्वरूपित करके और यह बताते हुए जवाब दे सकते हैं कि इसका उत्तर ओपी प्रश्न क्यों है। - james.garriss