“connectionTimeout”究竟在Tomcat中意味着什么?

时间:2016-09-22 15:54:57

标签: java tomcat connection

在文档(Tomcat 7 Config)中,写成:

  

此连接器在接受连接后将等待呈现请求URI行的毫秒数。使用值-1表示没有(即无限)超时。默认值为60000(即60秒),但请注意Tomcat附带的标准server.xml将其设置为20000(即20秒)。除非disableUploadTimeout设置为false,否则在读取请求正文(如果有)时也将使用此超时。

当客户端向服务器发送请求时,将花费N毫秒来建立连接。如果此N超过客户端设置的连接超时,则客户端中的请求将按预期失败。

我无法理解Tomcat connectionTimeout的不同之处。具体来说,“在接受连接之后,对于要呈现的请求URI行”是什么意思?

1 个答案:

答案 0 :(得分:3)

connectionTimeout是服务器自动关闭与客户端的连接而不是相反的时间限制。这是一种限制Denial Of Service Attack影响的方法。实际上,执行 DOS攻击的典型方法是在给定服务器上启动多个请求,并且每个请求将永远持续使服务器等待任何内容并填充其线程池,以便服务器赢得不能接受任何新的请求。由于这个超时,在x毫秒之后它将忽略该请求,将其视为潜在攻击。

Here是关于全球同一主题的一个有趣的讨论,有点深入。