怎么解决http请求超时,read time out

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么解决http请求超时,read time out相关的知识,希望对你有一定的参考价值。

参考技术A jquery ajax 里面可以设置timeout : 1000, //超时时间设置,单位毫秒
然后里面还有个complete方法,可以判断超时
complete : function(XMLHttpRequest,status) //请求完成后最终执行参数
    if(status=='timeout')//超时,status还有success,error等值的情况
      ajaxTimeoutTest.abort();
      alert("超时");
    
  本回答被提问者采纳

HTTP超时问题

参考技术A

HTTP超时可以分为连接超时和请求超时。

连接超时: 请求服务器建立连接的超时时间,也就是TCP三次握手要花费的时间。连接超时一般发生在网络拥塞。
请求超时: 建立连接后如果指定时间内服务器没有返回数据,即为请求超时。一般发身在单次服务本身要花费的时间就很长,或者服务器请求量过高,发生了访问阻塞。

一般情况的超时设置涉及到三个部分:前端、代理、后端。本例中前端部分的请求采用的是axios,代理使用nginx,后端使用express

axios设置超时使用timeout,timeout默认值为0(默认无超时)。也可以进行超时配置,这个超时配置起作用的是请求超时,对。
但是在一些情况下还是会出现 socket hang up 或者 ECONNRESET 的错误

总而言之就是服务器先于客户端关闭了TCP连接,并且客户端不知道

解决办法:

nginx可以针对单个域名请求作出超时设置:

针对服务器的超时设置:

以上是关于怎么解决http请求超时,read time out的主要内容,如果未能解决你的问题,请参考以下文章

pcaptransfertimedout

HttpClient报错cn.hutool.http.HttpException: Read timed out

connect timed out问题排查

Feign调用时读取超时(Read timed out executing GET)解决方法

redis压测两小时后超时

连接超时(connect timed out)和读取超时(Read timed out)