Grizzly (GlassFish) 和 Tomcat 中的最大 URI 长度
Tomcat 和 Grizzly (GlassFish 3) 中的 URI 是否有最大长度(非默认值)?
我想创建一个 RESTful API,它应该能够接收大的 GET 请求。
Is there a maximum length (not default value) for URIs in Tomcat and in Grizzly (GlassFish 3)?
I want to create a RESTful API which should be able to receive big GET requests.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 Tomcat 中,它可以配置为 的
maxHttpHeaderSize
属性server.xml
中的 HTTP 连接器 元素。其默认值为 8192 字节 (8KB)。这与未编码的 ASCII 字符数量大致相同。由于 Glassfish v3 在底层使用 Tomcat,因此配置设置是相同的。 Grizzly 只是一个 HTTP 连接器实现,可以在 Glassfish 和 Tomcat 中使用。抽象配置不应依赖于所使用的 HTTP 连接器实现。也就是说,还有另一个限制需要考虑,即客户端/代理端的限制。即使 HTTP 1.1 规范也对此发出警告,这里是 章节的摘录3.2.1:
MSIE 和 Safari 中的限制约为 2KB,Opera 中的限制约为 4KB,Firefox 中的限制约为 8KB。因此,我们可以假设 8KB 是最大可能的长度,2KB 是服务器端更经济实惠的长度,255 字节是假设整个 URL 将进入的最安全长度。
In Tomcat it's configureable as
maxHttpHeaderSize
attribute of the HTTP connector element inserver.xml
. Its default value is 8192 bytes (8KB). That's about the same amount of unencoded ASCII characters. As Glassfish v3 uses Tomcat under the hood, the configuration setting is the same. Grizzly is just a HTTP connector implementation which can be used in both Glassfish and Tomcat. The abstract configuration should not depend on the HTTP connector implementation used.That said, there's also another limitation to take account with, namely the one at client side / proxy side. Even the HTTP 1.1 specification warns about this, here's an extract of chapter 3.2.1:
The limit is in MSIE and Safari about 2KB, in Opera about 4KB and in Firefox about 8KB. We may thus assume that 8KB is the maximum possible length and that 2KB is a more affordable length to rely on at the server side and that 255 bytes is the safest length to assume that the entire URL will come in.