java - jetty 服务器 : keep alive timeout for HTTP connection

标签 java spring-boot http jetty keep-alive

所以HTTP.1版本及以上支持持久连接。

现在,我们正在创建一个应该是无状态的剩余应用程序。我们对一次连接数量进行了限制。

但是如果我查看 HTTP 1.0 文档,这种方法似乎有问题。

它表示服务器将保持连接打开,除非客户端要求关闭。

所以,我的问题是如果客户端不关闭怎么办?如果连接始终处于 Activity 状态,它可能会给我拒绝服务错误。

jetty 的默认超时是多少以及如何配置它?我找不到合适的文档。

最佳答案

HttpConfiguration 有一个配置设置 setIdleTimeout(long ms)

https://www.eclipse.org/jetty/javadoc/jetty-9/org/eclipse/jetty/server/HttpConfiguration.html#setIdleTimeout(long)

控制请求之间的空闲超时。

HttpConfiguration 对象是 ServerConnector 的一部分,用于控制监听端口并接受连接。

代码中空闲超时默认值为-1(无限)。

但在 jetty-home(以及较旧的 jetty-distribution)中,它需要 30,000 毫秒。

如果使用独立的jetty,请使用jetty-start属性jetty.http.idleTimeout为您的特定jetty基础实例/配置进行配置。

注意:如果您使用 Servlet 异步功能,则容器中配置的空闲超时将被 Servlet 异步超时配置覆盖。 (如果您使用 Servlet Async,则始终指定有效的超时,切勿禁用它,或将其设置为无限,或将其设置为巨大的值)

关于java - jetty 服务器 : keep alive timeout for HTTP connection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59374567/

相关文章:

java - Java中的树结构?

java - 如何在jsp页面加载时调用servlet?

http - DELETE 和 PUT HTTP 动词现在适用于所有浏览器?

javascript - 使用 JavaScript 切换 API

python - Scrapy - 发送 AJAX FormRequest 返回错误 419

java - 如何将 Camunda 引擎和 admin/tasklist/cockpit 嵌入到我自己的 Spring Security webapp 中?

java - Java servlet 出现 XML XPath utf-8 错误?

spring-boot - Spring-Doc open api 无法与 Spring cloud 配置服务器 @EnableConfigServer 一起使用

java - 如何使用 JDBC 在 spring-session 中初始化模式

java - 无法从 spring boot docker 容器连接 mysql docker 容器