当前位置: 首页 > 知识库问答 >
问题:

Jetty Server:保持HTTP连接的活动超时

葛泳
2023-03-14

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

现在,我们正在创建一个Rest应用程序,它应该是无状态的。我们一次限制连接的数量。

但如果我仔细阅读HTTP1.0文档,这种方法似乎有问题。

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

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

什么是jetty的默认超时,我如何配置它?我无法找到合适的留档。

共有1个答案

凤柏
2023-03-14

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

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

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

< code>HttpConfiguration对象是控制监听端口和接受连接的< code>ServerConnector的一部分。

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

但在jetty-home(以及较旧的jetty-的分布)中是30,000ms。

使用jetty start属性<code>jetty.http。idleTimeout</code>,如果使用独立jetty,则为您的特定jetty基本实例/配置配置它。

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

 类似资料:
  • 我正在创建一个客户端服务器应用程序。服务器已经设计好,等待从客户端连接。现在在客户机部分中,我希望在应用程序的整个生命周期中保持连接活动,并且只有当主客户机应用程序关闭或关闭或者服务器关闭它时,连接才会关闭。 在处理程序中我有:

  • 我在Go中有以下代码。Go使用超文本传输协议保持连接。因此,根据我的理解,不会创建新连接,因为Go语言使用默认的持久连接。 > 据我所知,HTTP持久连接一次只能发出一个请求,即第二个请求只能在第一次响应之后发出。然而,如果多个线程调用会发生什么?将在前一个请求得到响应之前是否发送另一个请求? 我假设服务器超时了客户端建立的任何保持活动的连接。如果服务器超时,那么下一次,它会建立新的连接吗?

  • 问题内容: 我正在使用POST方法。我需要创建一次,并且应该使用Keep Alive Connection。但是我认为,它每次都会建立一个新的连接。 因此,我需要使用 保持活动 连接。 这是我的代码段,很多帮助将不胜感激。 而且logcat日志是: 问题答案: 10:07:29.746:D / org.apache.http.headers(1529):>>连接:保持活动 您正在要求保持活动状态。

  • HTTP/1.1服务器默认为连接头的保持活动设置。那么,为什么大多数浏览器在其请求中都包含Connection:Keep-Alive,即使它们知道目标服务器支持HTTP/1.1?

  • 问题内容: 我有一个jQuery Ajax调用,如下所示: 我有这样的Flask方法: tcpdump显示HTTP对话框: 但是,Flask回复时没有保持活动状态。 确实没有实施保持活动的情况吗? 问题答案: Werkzeug的集成Web服务器基于Python标准库的BaseHTTPServer构建。如果将HTTPHTTP协议版本设置为1.1,则BaseHTTPServer似乎支持Keep- Al

  • 我使用okhttp3和retrofit2来获取json文件。我尝试了所有方法来使用keep-Alive连接来使数据下载更快,但似乎没有任何效果。 我已经实现了拦截器,并添加了keep-alive头。但它似乎就是不想工作。有人能看看我的代码,告诉我我在这里做错了什么吗?这是我的代码: 我想在这里补充的一点是,我使用Glide从服务器加载图像,Glide似乎使用Keep-Alive设置安静很好,因为G