И это настраивается? Могу ли я настроить Tomcat так, чтобы URL-адрес, например, с 200 КБ параметров запроса, успешно передавался на содержащийся сервлет?
Да, я знаю, что POST следует использовать, когда у вас много данных; в данном случае это менее приятный вариант. Содержимое приложения (поисковая машина) ожидает запроса GET для выполнения поиска.
Вы можете отредактировать запись HTTP / 1.1 Connector в tomcat / conf / server.xml и добавить maxHttpHeaderSize = "65536" для увеличения с максимального значения по умолчанию 8 КБ или около того до 64 КБ. Я полагаю, что вы могли бы увеличить это число до необходимого уровня, но на данный момент 64K достаточно для моих нужд, поэтому я не пробовал.
<Connector port="8080" maxHttpHeaderSize="65536" protocol="HTTP/1.1" ... />
Длина HTTP-запроса GET не применяется RFC2616, поскольку Microsoft сообщает о своем Страница поддержки максимальной длины IE.
Так, максимальная длина GET является проблемой, связанной с клиентом (браузером). Если ваше приложение используется людьми, которых вы можете заставить использовать данный браузер, вы можете просто узнать, как долго этот браузер поддерживает.
В любом случае предлагаю взглянуть на Википедия страница об этих проблемах, связанных с браузером, в строке запроса (часть запроса, содержащая параметры для приложений на стороне сервера, следующая за знаком «?», в конечном итоге присутствует в запросе.
Конечно, возможно, tomcat также установит ограничение на стороне сервера. RFC говорит:
Серверы ДОЛЖНЫ иметь возможность обрабатывать URI любого ресурса, который они обслуживают, и ДОЛЖНЫ иметь возможность обрабатывать URI неограниченной длины, если они предоставляют формы на основе GET, которые могут генерировать такие URI. Сервер ДОЛЖЕН возвращать статус 414 (Request-URI Too Long), если URI длиннее, чем сервер может обработать (см. Раздел 10.4.15).
поэтому вы можете легко проверить, есть ли у Tomcat ограничение, и узнать, что это за ограничение, просто используя разные запросы, начиная с очень длинного, дающего ошибку, и уменьшаясь вдвое. Затем используйте метод деления пополам, чтобы быстро найти точное значение.
Для разъема AJP необходимо отрегулировать packetSize
атрибут:
<Connector port="8009"
protocol="AJP/1.3"
packetSize="65536" />
Вы можете изменить конфигурацию на сервере Tomcat (.. \ Tomcat 6.0 \ conf \ server.xml)
<Connector port = "8983" maxHttpHeaderSize = "100000" protocol = "HTTP / 1.1" connectionTimeout = "20000" redirectPort = "8443" />