我们希望多次点击服务器而不受限制。这是一个基本的问题,现在人们面对的一天,必须找到解决办法。
很久以前我做了一个小实验,我在桌面上分配了多个IP地址,并使用socket(...,...,...,..)发送了HTTP请求。我写了一个小servlet来测试它,它运行正常。
我想知道是否有更好的方法来执行任务。
答案 0 :(得分:2)
根据您的评论,您正在多次查询互联网上的WEB页面,可能是高速率(高于人类正常浏览率)。
作为浏览器,您应该将自己限制为同时打开的连接数。最初,HTTP 1.1定义了4个这样的连接是允许的,但最新的浏览器版本正在使用大约8个,浏览器的多个窗口添加更多。 但基本规则仍然存在,大型站点的一些服务器场试图使用您所谓的限制来保护自己免受攻击。
您可以采用与浏览器相同的技术来平衡请求率:
限制并行打开的连接数,并利用打开的连接(不关闭它)在上一个请求结束时发送新请求。
更复杂的方法是实现HTTP Pipelining,并将其添加到上面的第1点。 Pipelining允许您在不等待响应的情况下在同一连接上发送多个请求,但并非所有站点都支持它(并非所有浏览器都使用它)。
您使用多个源地址的建议是适用的,但这取决于为网站提供服务的服务器场背后的技术,他们可能会假设类似的IP地址来自同一个用户网络。
另一个选择是通过网络在不同客户端上分发客户端,这些客户端通过中央服务器组合/同步工作。