Độ dài của yêu cầu HTTP GET không được RFC2616 thực thi , vì Microsoft báo cáo cho trang hỗ trợ độ dài tối đa IE của nó .
Vì vậy, độ dài GET tối đa là một vấn đề liên quan đến máy khách (trình duyệt) . Nếu ứng dụng của bạn được sử dụng bởi những người bạn có thể buộc sử dụng một trình duyệt nhất định thì bạn có thể chỉ cần tìm độ dài mà trình duyệt này hỗ trợ.
Trong mọi trường hợp, tôi đề nghị xem trang Wikypedia về các vấn đề liên quan đến trình duyệt trên chuỗi Truy vấn (phần yêu cầu mang tham số cho các ứng dụng phía máy chủ, cuối cùng là "?" Xuất hiện trong yêu cầu.
Tất nhiên có lẽ tomcat cũng sẽ đặt một giới hạn, về phía máy chủ. RFC nói:
Máy chủ PHẢI có thể xử lý URI của bất kỳ tài nguyên nào chúng phục vụ và NÊN có thể xử lý các URI có độ dài không giới hạn nếu chúng cung cấp các biểu mẫu dựa trên GET có thể tạo ra các URI đó. Máy chủ NÊN trả về trạng thái 414 (URI yêu cầu quá dài) nếu URI dài hơn máy chủ có thể xử lý (xem phần 10.4.15).
vì vậy bạn có thể dễ dàng kiểm tra xem Tomcat có giới hạn hay không và tìm ra giới hạn này chỉ đơn giản là sử dụng các yêu cầu khác nhau bắt đầu bằng một yêu cầu rất dài đưa ra lỗi và giảm một nửa. Sau đó sử dụng phương pháp chia đôi để nhanh chóng tìm ra giá trị chính xác.
server.xml
cấu hình mà không nhận thấy và bất ngờ nhấn nó. Gotcha đau đớn: không có gì được ghi lại về điều đó, các kết nối đã âm thầm bị hủy (tôi không nhớ lại Trạng thái HTTP nữa). Tôi đã tình cờ tìm thấy tài liệu tại tomcat.apache.org/tomcat-5.5-doc/config/http.html trước đây, tuy nhiên tôi đã không liên kếtmaxHttpHeaderSize
tên của nó cũng như mô tả của nó có liên quan đến chính các tham số truy vấn yêu cầu GET.