我用springmvc和springboot做的项目
用nginx路由对外开放
之前没关注过http超时时间
现在想知道
springmvc/spring-boot写的api接口,接收http请求的超时是如何设置的?
是nginx,tomcat还是spring框架有默认设置?
还是自己设置?
或者说超时是客户端自己设置,和服务端无关?
我用springmvc和springboot做的项目
用nginx路由对外开放
之前没关注过http超时时间
现在想知道
springmvc/spring-boot写的api接口,接收http请求的超时是如何设置的?
是nginx,tomcat还是spring框架有默认设置?
还是自己设置?
或者说超时是客户端自己设置,和服务端无关?
目前主流B/S体系中,基本采用Http1.1方案,Http1.1默认是采用持久连接的。持久连接意味着,对于服务器而言,只要客户端不关闭,这个Http连接就会一直保持着(当然,服务器为了防止恶意攻击,也会采取定时检测失落的机制主动关闭连接),而对于客户端而言,一般会连接超时配置,对于connectionTimeout,socketTimeout,对于HttpClient还会有个connectionRequestTimeout. 你说的超时,一般指的应该是客户端设置的超时,connectionTimeout是与服务器在设定时间内没有成功进行tcp的三次握手,而没有连接上。而socketTimeout是等待服务器回传数据的时候,指定时间没有收到。
参考:
https://docs.spring.io/spring...
中WEB PROPERTIES
相关参数设置。
是需要通过设置
server.connection-timeout= # Time that connectors wait for another HTTP request before closing the connection. When not set, the connector's container-specific default is used. Use a value of -1 to indicate no (that is, an infinite) timeout.
来控制请求的发送的超时时间,还有一些其他参数你都可以参考下,是否需要调整。
3 回答2.7k 阅读✓ 已解决
3 回答4.2k 阅读✓ 已解决
8 回答3.8k 阅读
4 回答2.8k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.6k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
每一层都有超时
你可控的是2-4,建议根据业务情况来设定