位置: 编程技术 - 正文

Python程序中设置HTTP代理(python函数设置)

编辑:rootadmin

推荐整理分享Python程序中设置HTTP代理(python函数设置),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:设置pythonpath,python程序设置密码,python函数设置,python怎么设计程序,python程序设置密码,python怎么设计程序,python编程界面设置,python函数设置,内容如对您有帮助,希望把文章链接给更多的朋友!

0x 前言

大家对HTTP代理应该都非常熟悉,它在很多方面都有着极为广泛的应用。HTTP代理分为正向代理和反向代理两种,后者一般用于将防火墙后面的服务提供给用户访问或者进行负载均衡,典型的有Nginx、HAProxy等。本文所讨论的是正向代理。

HTTP代理最常见的用途是用于网络共享、网络加速和网络限制突破等。此外,HTTP代理也常用于Web应用调试、Android/IOS APP 中所调用的Web API监控和分析,目前的知名软件有Fiddler、Charles、Burp Suite和mitmproxy等。HTTP代理还可用于请求/响应内容修改,在不改变服务端的情况下为Web应用增加额外的功能或者改变应用行为等。

0x HTTP代理是什么

HTTP代理本质上是一个Web应用,它和其他普通Web应用没有根本区别。HTTP代理收到请求后,根据Header中Host字段的主机名和Get/POST请求地址综合判断目标主机,建立新的HTTP请求并转发请求数据,并将收到的响应数据转发给客户端。

如果请求地址是绝对地址,HTTP代理采用该地址中的Host,否则使用Header中的HOST字段。做一个简单测试,假设网络环境如下:

使用telnet进行测试

注意最后需要连续两个回车,这是HTTP协议要求。完成后,可以收到 的页面内容。下面做一下调整,GET请求时带上绝对地址

注意这里同样设置了HOST为..1.2,但运行结果却返回了 页面的内容,也就是公网IP地址信息。

从上面的测试过程可以看出,HTTP代理并不是什么很复杂的东西,只要将原始请求发送到代理服务器即可。在无法设置HTTP代理的情况下,对于少量Host需要走HTTP代理的场景来说,最简单的方式就是将目标Host域名的IP指向代理服务器,可以采取修改hosts文件的方式来实现。

0x Python程序中设置HTTP代理

urllib2/urllib 代理设置

urllib2是Python标准库,功能很强大,只是使用起来稍微麻烦一点。在Python 3中,urllib2不再保留,迁移到了urllib模块中。urllib2中通过ProxyHandler来设置使用代理服务器。

Python程序中设置HTTP代理(python函数设置)

也可以用install_opener将配置好的opener安装到全局环境中,这样所有的urllib2.urlopen都会自动使用代理。

在Python 3中,使用urllib。

requests 代理设置

requests是目前最优秀的HTTP库之一,也是我平时构造http请求时使用最多的库。它的API设计非常人性化,使用起来很容易上手。给requests设置代理很简单,只需要给proxies设置一个形如 {'http': 'x.x.x.x:', 'https': 'x.x.x.x:'} 的参数即可。其中http和https相互独立。

可以直接设置session的proxies属性,省去每次请求都要带上proxies参数的麻烦。

0x HTTP_PROXY / HTTPS_PROXY 环境变量

urllib2 和 Requests 库都能识别 HTTP_PROXY 和 HTTPS_PROXY 环境变量,一旦检测到这些环境变量就会自动设置使用代理。这在用HTTP代理进行调试的时候非常有用,因为不用修改代码,可以随意根据环境变量来调整代理服务器的ip地址和端口。*nix中的大部分软件也都支持HTTP_PROXY环境变量识别,比如curl、wget、axel、aria2c等。

在IPython交互环境中,可能经常需要临时性地调试HTTP请求,可以简单通过设置 os.environ['http_proxy'] 增加/取消HTTP代理来实现。

0x MITM-Proxy

MITM 源于 Man-in-the-Middle Attack,指中间人攻击,一般在客户端和服务器之间的网络中拦截、监听和篡改数据。

mitmproxy 是一款Python语言开发的开源中间人代理神器,支持SSL,支持透明代理、反向代理,支持流量录制回放,支持自定义脚本等。功能上同Windows中的 Fiddler 有些类似,但mitmproxy是一款console程序,没有GUI界面,不过用起来还算方便。使用mitmproxy可以很方便的过滤、拦截、修改任意经过代理的HTTP请求/响应数据包,甚至可以利用它的scripting API,编写脚本达到自动拦截修改HTTP数据的目的。

上面的脚本会在所有经过代理的Http响应包头里面加上一个名为BOOM的header。用 mitmproxy -s 'test.py' 命令启动mitmproxy,curl验证结果发现的确多了一个BOOM头。

显然mitmproxy脚本能做的事情远不止这些,结合Python强大的功能,可以衍生出很多应用途径。除此之外,mitmproxy还提供了强大的API,在这些API的基础上,完全可以自己定制一个实现了特殊功能的专属代理服务器。

经过性能测试,发现mitmproxy的效率并不是特别高。如果只是用于调试目的那还好,但如果要用到生产环境,有大量并发请求通过代理的时候,性能还是稍微差点。我用twisted实现了一个简单的proxy,用于给公司内部网站增加功能、改善用户体验,以后有机会再和大家分享。

python自带的http模块详解 挺久没写博客了,因为博主开始了今年另一段美好的实习经历,学习加做项目,时间已排满;很感谢今年这两段经历,让我接触了golang和python,学习不

简单谈谈python中的多进程 进程是由系统自己管理的。1:最基本的写法frommultiprocessingimportPooldeff(x):returnx*xif__name__=='__main__':p=Pool(5)print(p.map(f,[1,2,3]))[1,4,9]2、实际上是通过os.fork的

windows系统中安装python3.x+scrapy教程 官网下载就好,

标签: python函数设置

本文链接地址:https://www.jiuchutong.com/biancheng/383457.html 转载请保留说明!

上一篇:Python 搭建Web站点之Web服务器网关接口(python搭建网站并在服务器上部署)

下一篇:python自带的http模块详解

  • 预付款发票能入账吗
  • 税后营业利润怎么算出来的
  • 专用发票只能公对公吗
  • 结转本月完工入库产品制造成本,甲产品800台全部完工
  • 个税如何变更公司
  • 电信没有基站为什么信号也很好
  • 酒店购买的空调折旧计入管理费用吗
  • 百旺税控盘反写不了怎么回事
  • 固定资产未付款怎么入账
  • 企业之间资金借贷需要交税吗
  • 差额发票的税额怎么计算
  • 建造普通标准住宅出售,增值税超过扣除金额的
  • 收到进项专用发票怎么做
  • 网上银行 电子回单
  • 出售资产时递延所得税怎么处理
  • 因台风造成原材料毁损计入什么科目
  • 租赁合同印花税计税依据含税吗
  • 企业所得税免税收入和不征税收入
  • 融资租赁与经营租赁的相同点
  • 代收代缴消费税要交城建税吗?
  • 个体工商户200万以下减半
  • 购入低值易耗品一批,实际成本4000元
  • 出口退税免退税办法
  • 去银行打印公户流水需要带什么
  • 生产成本中的电费计入制造费用吗
  • 企业增值税如何退税
  • xp系统怎么取消用户登录
  • 车辆保险费计入车辆的入账成本吗
  • 税负率的销售收入是什么
  • 一般纳税人怎么算税
  • 未分配利润可留待以后年度进行分配的当年结余利润
  • 收到人才引进补助会计分录
  • 系统之家装机可靠吗
  • 借条和欠条的区别 法律效力
  • 股东分红缴纳个税时间
  • 银行的抵债资产有几种处置办法
  • rteng7.exe - rteng7是什么进程 有什么用
  • 包装物交不交消费税
  • 委托代销双方账务处理
  • 城建税10%用于教育哪方面
  • 前端 教程
  • 如何理解ps中的黑透白不透
  • 会计caac是什么意思
  • 事业单位会计制度
  • 丢失增值税发票已报税证明单取消
  • mysql索引优化的方案
  • 金税盘税务申报流程
  • sqlserver经典书籍
  • 账面价值和公允价值的关系
  • 收取会费
  • 营业执照已办理,公司章程在哪里找
  • 工程物资是
  • 纳税调整怎么做
  • 职工福利费无发放原因
  • 从政府取得土地使用权缴增值税吗
  • 解除合同补偿金需要缴纳个税吗
  • 公司购买的财产保险要交印花税吗
  • 在分公司签的合同能转到总公司吗?
  • 建筑行业总产值占我国GDP的比重
  • 营业外收入明细账图片
  • 原材料可以不设明细吗?
  • 事业单位会计岗位属于哪一类
  • mysql如何解压
  • crossfire.exe是什么
  • centos7查看性能监控
  • cocos2d安装
  • opengl画矩形函数
  • 举例说明如何为教学搭建支架
  • javascript创建对象
  • jquery文本框内容改变事件
  • perl删除文件夹
  • jquery简单例子
  • 简单实现多彩慕斯蛋糕淋面的方法
  • Node.js中的事件循环是什么
  • android中的线程
  • python remote
  • javascript entries
  • #androidsdk文件夹可以删除吗
  • 特价机票包含燃油费和机场建设费吗
  • 自建房交契税需要什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设