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

发布于 2024-08-18 00:39:57 字数 104 浏览 8 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

深居我梦 2024-08-25 00:39:57

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

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

注意:服务器应该谨慎对待 URI 长度
超过 255 字节,因为一些较旧的客户端或代理
实现可能无法正确支持这些长度。

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

In Tomcat it's configureable as maxHttpHeaderSize attribute of the HTTP connector element in server.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:

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.

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文