Tomcat和Grizzly(GlassFish 3)中的URI是否有最大长度(非默认值)?
我想创建一个RESTful API,它应该能够接收大的GET请求。
答案 0 :(得分:2)
在Tomcat中,它可以配置为maxHttpHeaderSize
中HTTP connector元素的server.xml
属性。其默认值为8192字节(8KB)。那是大约相同数量的未编码的ASCII字符。由于Glassfish v3使用Tomcat,配置设置是相同的。 Grizzly只是一个HTTP连接器实现,可以在Glassfish和Tomcat中使用。抽象配置不应该依赖于使用的HTTP连接器实现。
也就是说,考虑到另一个限制,即客户端/代理端的限制。甚至HTTP 1.1规范都警告过这一点,这里是chapter 3.2.1的摘录:
注意:服务器应该谨慎依赖URI长度 超过255个字节,因为一些较旧的客户端或代理 实现可能无法正确支持这些长度。
限制在MSIE和Safari大约2KB,Opera大约4KB和Firefox大约8KB。因此,我们可以假设8KB是最大可能长度,并且2KB是服务器端依赖的更可承受的长度,并且假设整个URL将进入,255字节是最安全的长度。