导致HTTP超时的两种常见原因


在用户日常使用代理IP开展业务的过程中,许多用户或多或少都会遇到HTTP超时的问题,而导致这种情况出现的原因一般来说有两种—网络出现问题或者服务器端出现异常,具体表现为请求超时与响应超时:


image.png


请求超时


很多HTTP framework本身有超时机制,就是在应用层代码里启动一个Timer,如果Timer超时则手动取消请求。比如用户现在网络环境较差,当客户端发起一个请求时,通信层开始请求与服务器建立连接(包括在重试),如果在5S之内还没有连接到服务器,那么就会判定为超时。


响应超时


当用户连接到服务器时,一般例如url等参数(url?key=value)会直接提交到服务器,比如body类型的参数(Form、JsonBody、key=value&key1=value1等)我们会通过连接中的stream再手动写出去,当服务器接受到请求数据后开始【处理数据->响应】,这个【处理数据->响应】阶段就可能会发生响应超时,比如服务器去执行数据库操作,在5S内还没有对stream做出反馈,那么客户端就认为超时,主动断开和服务器的连接。


以上两种情况,底层一般都是抛出一个TimeoutException的异常,例如:


1.一个不存在的url,但是这个url的域名是存在的,比如:https://www.google.com?name=liming&pwd=123456这个URL显然是不存在的,但是域名是存在且可以请求的,这个时候的超时情况是符合上面的两种描述的,但是如果正确请求,那么将会响应404。


2. 一个不存在的域名。比如域名没有被注册过,或者说注册了没有被解析到某个ip上。这种情况一般都会收到毫秒级别的反馈,得到的异常可能是NotFoundHostException,而不是TimeoutException。


IPIDEA已向众多互联网知名企业提供服务,对提高爬虫的抓取效率提供帮助,支持API批量使用,支持多线程高并发使用。欢迎访问www.ipidea.net


热门资讯