Максимальная длина URI в Grizzly (GlassFish) и Tomcat - PullRequest
0 голосов
/ 14 января 2010

Существует ли максимальная длина (не значение по умолчанию) для URI в Tomcat и в Grizzly (GlassFish 3)?

Я хочу создать RESTful API, который должен принимать большие запросы GET.

1 Ответ

2 голосов
/ 14 января 2010

В Tomcat его можно настроить как атрибут maxHttpHeaderSize элемента HTTP-коннектора в server.xml. Его значение по умолчанию составляет 8192 байта (8 КБ). Это примерно столько же некодированных символов ASCII. Поскольку Glassfish v3 использует Tomcat под капотом, настройка конфигурации такая же. Grizzly - это просто реализация HTTP-коннектора , которую можно использовать как в Glassfish, так и в Tomcat. Абстрактная конфигурация не должна зависеть от используемой реализации коннектора HTTP.

Тем не менее, есть еще одно ограничение, которое необходимо учитывать, а именно, на стороне клиента / прокси. Даже спецификация HTTP 1.1 предупреждает об этом, вот выдержка из главы 3.2.1 :

Примечание. Серверы должны соблюдать осторожность в зависимости от длины URI. выше 255 байт, потому что какой-то старый клиент или прокси реализации могут не поддерживать должным образом эти длины.

Ограничение в MSIE и Safari составляет около 2 КБ, в Opera - около 4 КБ, а в Firefox - около 8 КБ. Таким образом, мы можем предположить, что 8 КБ - это максимально возможная длина, а 2 КБ - это более доступная длина, на которую можно полагаться на стороне сервера, и что 255 байт - это самая безопасная длина, позволяющая предположить, что будет введен весь URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...