ความยาวของการร้องขอ HTTP GET ไม่ได้บังคับใช้โดย RFC2616เช่นไมโครซอฟท์รายงานสำหรับIE ยาวสูงสุดหน้าให้ความช่วยเหลือ
ดังนั้นความยาวได้สูงสุดเป็นลูกค้า (เบราว์เซอร์) ปัญหาที่เกี่ยวข้อง หากคนของคุณใช้แอปของคุณคุณสามารถบังคับให้ใช้เบราว์เซอร์ที่ระบุคุณสามารถค้นหาว่าเบราว์เซอร์นี้รองรับความยาวเท่าใด
ในทุกกรณีฉันขอแนะนำให้ดูหน้าWikypediaเกี่ยวกับปัญหาที่เกี่ยวข้องกับเบราว์เซอร์ในสตริงการสืบค้น (ส่วนหนึ่งของคำขอที่นำพารามิเตอร์สำหรับแอปฝั่งเซิร์ฟเวอร์
แน่นอนว่า Tomcat อาจเพิ่มขีด จำกัด เช่นกันทางฝั่งเซิร์ฟเวอร์ RFC พูดว่า:
เซิร์ฟเวอร์จะต้องสามารถจัดการ URI ของทรัพยากรใด ๆ ที่พวกเขาให้บริการและควรจะสามารถจัดการ URIs ของความยาวไม่ จำกัด หากพวกเขาให้รูปแบบตาม GET ที่สามารถสร้าง URIs ดังกล่าว เซิร์ฟเวอร์ควรส่งคืนสถานะ 414 (Request-URI ยาวเกินไป) หาก URI ยาวเกินกว่าที่เซิร์ฟเวอร์สามารถจัดการได้ (ดูหัวข้อ 10.4.15)
เพื่อให้คุณสามารถทดสอบได้ง่ายว่า Tomcat มีขีด จำกัด และค้นหาว่าข้อ จำกัด นี้เพียงแค่ใช้คำขอที่แตกต่างกันโดยเริ่มจากคำขอที่ยาวมากซึ่งให้ข้อผิดพลาดและลงครึ่งหนึ่ง จากนั้นใช้วิธีการแบ่งครึ่งเพื่อค้นหาค่าที่ต้องการอย่างรวดเร็ว
server.xml
โดยไม่สังเกตเห็นและก็ชนมัน เจ็บปวด gotcha: ไม่มีอะไรเลยที่ถูกบันทึกไว้เกี่ยวกับสิ่งนั้นการเชื่อมต่อถูกลดลงไปอย่างเงียบ ๆ (ฉันไม่จำสถานะ HTTP อีกต่อไป) ฉันสะดุดเอกสารที่tomcat.apache.org/tomcat-5.5-doc/config/http.htmlก่อนหน้านี้ แต่ฉันไม่ได้เชื่อมโยงmaxHttpHeaderSize
ด้วยชื่อหรือคำอธิบายที่เกี่ยวข้องกับพารามิเตอร์การร้องขอคำขอ GET ด้วยเช่นกัน