# 粘性会话

粘性会话会在规定时长内把一系列请求绑定到同一出口 IP，而不是每个连接都轮换。客户端将会话标识附加到代理用户名；携带相同标识的连接都会经同一出口路由，直到会话到期或出口离线。它使登录、购物车和多页面流程能够在轮换代理池中正常工作。


## 如何表示

需要两个参数：自选的会话 ID 与有效期。在 ProxShift 用户名中分别写作 `-sid-<id>` 和 `-ttl-<duration>`；其他提供商使用类似键。更改 ID 会立即获得新出口；复用 ID 则在有效期内保持同一出口。

```text
http://USER-cc-us-sid-cartA-ttl-30m:PASS@res.proxshift.com:9000
http://USER-cc-us-sid-cartB-ttl-30m:PASS@res.proxshift.com:9000
```


## 多长才够用

- 搜索后浏览三个结果页面：几分钟。
- 包含地址与支付步骤的结账流程：10 至 30 分钟。
- 账号活动需要在一天内表现为同一设备：数小时，最长不超过提供商上限。
- 连续数周或数月使用同一地址：这不是粘性会话，而是 [ISP 代理](https://proxshift.com/zh/glossary/isp-proxy)。


## 出口消失时会怎样

家庭设备会离线。设计良好的网关会检测到这一情况，将会话绑定到同一位置的其他设备；会话可继续，最多失败一次请求。因此代码应在连接错误时重试一次。


## 在 ProxShift 中的工作方式

ProxShift 的住宅与移动网关均可让粘性会话保持同一出口 1 分钟至 24 小时（-ttl-，默认 10 分钟）；-sid- 最多接受 32 个字符，仅限 a-z 和 0-9。出口失效时会由同一位置的其他出口替代。

## 问题

**粘性会话能保证在整个 TTL 内使用同一 IP 吗？**

网关会尽力保持。如果出口背后的家庭设备断开连接，会话将转移到同一位置的其他出口；设备被其所有者关闭后，任何服务都无法让它继续在线。

**可以同时运行多个粘性会话吗？**

可以，数量不限，每个会话使用自己的 ID。代理池中的“一账号一会话”或“一购物车一会话”工作负载就是这样实现的。

来源：https://proxshift.com/zh/glossary/sticky-session
