java - Grizzly (GlassFish) 和 Tomcat 中的最大 URI 长度

标签 java configuration tomcat glassfish grizzly

Tomcat 和 Grizzly (GlassFish 3) 中的 URI 是否有最大长度(不是默认值)?

我想创建一个应该能够接收大 GET 请求的 RESTful API。

最佳答案

在 Tomcat 中,它可以配置为 HTTP connectormaxHttpHeaderSize 属性server.xml 中的元素。其默认值为 8192 字节 (8KB)。这与未编码的 ASCII 字符的数量大致相同。由于 Glassfish v3 在底层使用 Tomcat,因此配置设置是相同的。 Grizzly 只是一个 HTTP 连接器实现,可以在 Glassfish 和 Tomcat 中使用。抽象配置不应依赖于所使用的 HTTP 连接器实现。

也就是说,还有另一个限制需要考虑,即客户端/代理端的限制。即使是 HTTP 1.1 规范也对此发出警告,这里是 chapter 3.2.1 的摘录:

Note: Servers ought to be cautious about depending on URI lengths above 255 bytes, because some older client or proxy implementations might not properly support these lengths.

限制在 MSIE 和 Safari 中约为 2KB,在 Opera 中约为 4KB,在 Firefox 中约为 8KB。因此,我们可以假设 8KB 是最大可能的长度,2KB 是服务器端依赖的更经济的长度,255 字节是最安全的长度,假设整个 URL 都将进入。

关于java - Grizzly (GlassFish) 和 Tomcat 中的最大 URI 长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2063666/

相关文章:

java - DispatcherServler 不工作

Java 程序将 n 以内的整数的倒数相加

java - 我的 toString() 仅返回一个对象乘以总对象数

python读取没有键值对的ini

java - log4j2 动态变量的默认值

java - 为我的 servlet 启动 tomcat 时出错

java - 如何在 Java 中使用 Selenium 通过 firefox 下载 XLSX 文件?

java - 在单独的线程中启动 zookeeper

java - Spring Boot 根 Controller 无法在 Tomcat WAR 上运行

multithreading - 使用 Spring boot 和 CompletableFuture 及其线程管理编写异步 Rest API