0

0

Python 长连接与短连接的使用边界

冷炫風刃

冷炫風刃

发布时间:2026-02-18 13:37:35

|

645人浏览过

|

来源于php中文网

原创

requests中开启长连接需使用session对象,因其内置连接池默认支持keep-alive;但需注意服务端是否真正支持、连接池需手动关闭、并发时需调大pool_maxsize,并非所有场景都适用长连接。

python 长连接与短连接的使用边界

长连接在 requests 里怎么开,又为什么不能乱开

requests 默认是短连接,每次 requests.get() 都会新建 TCP 连接、发完就关。想复用连接,得自己配 Session——它内部带连接池,默认开启长连接复用。

但不是所有服务都支持 Keep-Alive,有些反向代理(比如 Nginx 默认配置)或老旧 API 网关会直接忽略 Connection: keep-alive 头,甚至主动断连。这时你用 Session 也白搭,连接还是秒断。

  • 必须显式用 with requests.Session() as s: 或手动调 s.close(),否则连接池不释放,可能耗尽文件描述符
  • 如果目标服务响应头没返回 Connection: keep-alive 或含 Connection: close,requests 会自动降级为短连,不报错也不提醒
  • 高并发下连接池大小要调:requests.adapters.HTTPAdapter(pool_connections=10, pool_maxsize=20),默认只有 10,容易卡住

urllib3 的 PoolManagerHTTPConnectionPool 到底管什么

requests 底层靠 urllib3,而 PoolManager 是顶层路由分发器,按 host:port 缓存 HTTPConnectionPool 实例。每个 pool 管一个 host 的连接复用,不是全局一把梭。

这意味着 https://api.example.comhttps://upload.example.com 即使同域,也会走两个独立连接池——DNS 解析结果不同、端口不同、SSL 上下文不同,都会触发新 pool。

立即学习Python免费学习笔记(深入)”;

萌次元商城 V4.5.0.16
萌次元商城 V4.5.0.16

萌次元商城是一个针对二次元的开源发卡系统。系统免费开源、界面美观、功能丰富。 (存在与第三方服务器连接的付费增值服务,但自身免费功能能够满足基本需求) 版权:遵循MIT协议从lizhipay处获得授权进行再分发 特色功能: 1.可以分发密钥,作为发卡网使用 2.可以关联快递单号,作为微商自建电商平台使用 3.支持多种支付方式,包括微信、支付宝、银联和国际

下载
  • 自定义 PoolManager 时别漏掉 maxsizeblock=True,否则并发超限时直接抛 MaxRetryError
  • pool 的 timeout 是连接+读取总超时,和 requests 的 timeout=(conn_timeout, read_timeout) 不等价,混用容易误判
  • 调试连接复用是否生效,看日志里有没有 Starting new HTTPS connection —— 复用时只打 Resetting dropped connection 或静默重用

短连接适合哪些场景,硬上长连接反而坏事

短连接不是缺陷,是设计选择。当请求间隔长、目标不稳定、或客户端生命周期极短(比如 AWS Lambda 单次执行),长连接反而浪费资源、拖慢冷启动、甚至因服务端 idle timeout 导致首字节延迟升高。

  • 脚本类工具(如定时 sync 脚本)、CLI 工具、一次性爬虫,用 requests.get() 更干净,不用操心 session 生命周期
  • 调用 HTTP/1.0 服务或明确声明 Connection: close 的接口,长连接无意义,还可能因复用已关闭 socket 报 RemoteDisconnected
  • 某些云函数环境(如 Cloudflare Workers)根本不支持长连接,socket 在 handler 返回后强制销毁,强行用 Session 只会多一次无效 connect 尝试

HTTP/2 下长连接行为有啥不一样

requests 目前不原生支持 HTTP/2,得换 httpxaiohttp。而 HTTP/2 的“长连接”本质是 multiplexing:单个 TCP 连接上并发跑多个 stream,不是简单复用 request-response 循环。

这时候连接池逻辑变了——httpx.Client() 的连接池按 (scheme, host, port, http_version) 四元组索引,HTTP/2 连接不会跟 HTTP/1.1 混用。而且 HTTP/2 的 server push、流控、优先级机制,会让“连接空闲是否该关”变得更复杂。

  • httpx 时别只改 http2=True,还得确认服务端真支持,否则 fallback 到 HTTP/1.1 且不报错
  • HTTP/2 连接的 idle timeout 由服务端通过 SETTINGS_MAX_IDLE_TIME 控制,客户端无法单方面延长,抓包看 SETTINGS 帧才能确认
  • 某些中间件(如 Envoy)对 HTTP/2 长连接的 keepalive 心跳处理不一致,可能比 HTTP/1.1 更早断连,需要额外配 http2_keep_alive_interval

真正难的不是选长还是短,是看懂服务端的连接策略和中间件行为。很多问题表面是 Python 连接复用失效,实际是 Nginx 的 keepalive_timeout 设成 5 秒,或者 CDN 把 Connection 头给 strip 了。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

240

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

516

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

566

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

240

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

500

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3586

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

49

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

65

2026.01.13

pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

561

2026.02.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.4万人学习

Django 教程
Django 教程

共28课时 | 4.3万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号