会话与轮换 · 词汇表

连接保持与轮换

HTTP 连接保持允许客户端通过同一个 TCP 连接发送多个请求。使用轮换代理时,出口在连接建立时选定,因此该连接上复用的所有请求都会从同一 IP 发出。使用连接池的客户端看到的 IP 变化次数会少于预期;强制每个请求建立新连接即可恢复按请求轮换。

阅读约 2 分钟 又称 连接复用、持久连接 更新于

表现#

  • 即使未设置会话 ID,IP 回显调用仍连续多次返回同一地址。
  • 爬虫看似在“轮换”,实际却复用由十个连接组成的连接池,因此被按 IP 限速的目标封锁。

各客户端的解决方法#

客户端如何让每个请求建立新连接
cURL每次调用本来就会建立新连接
Python requests不使用 Session 调用 requests.get(...),或设置 headers={"Connection": "close"}
Node.js fetch / undici每个请求新建 ProxyAgent,或设置 pipelining: 1 与 keepAliveTimeout: 0
Go net/httpTransport.DisableKeepAlives = true
浏览器无法控制;改用粘性会话,并通过更改 -sid- 进行轮换

反过来的情况#

如果你*希望*多个请求使用同一出口,连接保持可在同一连接上发挥作用,但不要只依赖它:请使用粘性会话,这样即使连接重置也能继续保持同一出口。

在 ProxShift 中如何运作#

ProxShift 网关会为每个新连接选择出口,并在该连接的生命周期内保持不变(空闲连接会在 60 秒后关闭)。-sid- 可明确指定这一选择,使其不受连接影响。

准备好即可开始

在真实请求中亲自验证。

创建账户,充值 $20,然后针对你自己的目标运行快速入门示例。已购买的流量永不过期。