python--杂识--16--代理密码中包含特殊字符
1 安装nginx
2 centos环境安装
yum install httpd-tools
3 nginx.conf
/etc/nginx/conf/nginx.conf
#user nobody;
worker_processes 1;#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024;
}http {upstream backend {server 127.0.0.1:80;}server {listen 80;server_name localhost;location / {return 200 'Hello, World!';}}server {listen 514;server_name localhost;auth_basic "Restricted Access"; # 要求输入用户名和密码auth_basic_user_file /etc/nginx/.htpasswd; # 存储用户名和密码的文件路径location / {proxy_pass http://backend;}}}
4 代理设置密码
测出设置的 test/123abc@
htpasswd -c /etc/nginx/.htpasswd test
New password:
Re-type new password:
Adding password for user test
5 启动nginx[代理]
检查配置文件是否正确
/usr/local/nginx/sbin/nginx -t -c /etc/nginx/conf/nginx.conf
启动nginx
/usr/local/nginx/sbin/nginx -c /etc/nginx/conf/nginx.conf
6 curl测试
(base) [root@Chasing-Dreams conf]# curl -X GET http://test:123abc%40@localhost:514
Hello, World!
7 python代码测试
import requests
from requests.auth import HTTPBasicAuthurl = 'http://localhost'
username = "test"
password = "123abc@"def special_char(password):tmp_password_list = list()for x in password:if not x.isalnum():x = "%" + hex(ord(x))[2:]tmp_password_list.append(x)password = "".join(tmp_password_list)return passworddef method1():print("===========1=============")proxy = {'http': 'http://localhost:514','https': 'https://localhost:514'}print(proxy)response = requests.get(url, proxies=proxy, auth=HTTPBasicAuth(username, password))print(response.text)def method2():print("===========2=============")print("===========2.1=============")url = "http://%s:%s@localhost:514" % (username, password) # 代理print(url)response = requests.get(url=url)print(response.text)print("===========2.2=============")password_ = special_char(password)url = "http://%s:%s@localhost:514" % (username, password_)print(url)response = requests.get(url=url)print(response.text)def method3():print("===========3=============")proxy = {'http': 'http://localhost:514','https': 'https://localhost:514'}print(proxy)req = requests.request(method="GET", url=url, proxies=proxy, auth=HTTPBasicAuth(username, password))print(req.text)def method4():print("===========4=============")"""部分代理按该方式处理,使用nginx做代理测试时,没有成功"""global passwordpassword = special_char(password)proxy = {'http': 'http://%s:%s@localhost:514' % (username, password),'https': 'https://%s:%s@localhost:514' % (username, password)}print(proxy)req = requests.request(method="GET", url=url, proxies=proxy)print(req.text)if __name__ == "__main__":method1()method2()method3()method4()"""
运行结果:
(base) [root@Chasing-Dreams test]# python test.py
===========1=============
{'http': 'http://localhost:514', 'https': 'https://localhost:514'}
Hello, World!
===========2=============
===========2.1=============
http://test:123abc@@localhost:514
Hello, World!
===========2.2=============
http://test:123abc%40@localhost:514
Hello, World!
===========3=============
{'http': 'http://localhost:514', 'https': 'https://localhost:514'}
Hello, World!
===========4=============
{'http': 'http://test:123abc%40@localhost:514', 'https': 'https://test:123abc%40@localhost:514'}
<html>
<head><title>401 Authorization Required</title></head>
<body>
<center><h1>401 Authorization Required</h1></center>
<hr><center>nginx/1.20.2</center>
</body>
</html>
"""
相关文章:
python--杂识--16--代理密码中包含特殊字符
1 安装nginx 2 centos环境安装 yum install httpd-tools3 nginx.conf /etc/nginx/conf/nginx.conf #user nobody; worker_processes 1;#error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info;#pid logs/nginx.pid;e…...
【Git】05 分离头指针
文章目录 一、分离头指针二、创建分支三、比较commit内容四、总结 一、分离头指针 正常情况下,在通过git checkout命令切换分支时,在命令后面跟着的是分支名(例如master、temp等)或分支名对应commit的哈希值。 非正常情况下&…...
【Tomcat与网络9】提高Tomcat启动速度的八大措施
本文我们来看一下如何对Tomcat进行调优,我们对于Tomcat的调优主要集中在三个方面:提高启动速度、提高系统稳定性和提高并发能力,后两者很多时候是相辅相成的,我们放在一起看。 Tomcat现在一般都嵌入在SpringBoot里,因…...
蓝桥杯嵌入式第七届真题(完成) STM32G431
蓝桥杯嵌入式第七届真题(完成) STM32G431 题目 相关文件 main.c /* USER CODE BEGIN Header */ /********************************************************************************* file : main.c* brief : Main program body**********************…...
如何降低视频RTSP解码延迟
降低RTSP(Real-Time Streaming Protocol)视频流的解码延迟涉及到网络传输和解码处理的优化。以下是一些常见的方法: 选择低延迟的解码器:使用专为低延迟优化的解码器,例如一些定制的H.264或H.265解码器。 优化解码器设…...
【Golang】自定义logrus日志保存为日志文件
背景 为了方便查看日志,项目中需要把日志保存到对应的日志文件中,所以需要当前的配置,以使得日志能够保存到对应的日志文件中。 代码 import ("github.com/orandin/lumberjackrus""github.com/sirupsen/logrus" )func …...
【大厂AI课学习笔记】1.4 算法的进步(4)关于李飞飞团队的ImageNet
第一个图像数据库是ImageNet,由斯坦福大学的计算机科学家李飞飞推出。ImageNet是一个大型的可视化数据库,旨在推动计算机视觉领域的研究。这个数据库包含了数以百万计的手工标记的图像,涵盖了数千个不同的类别。 基于ImageNet数据库…...
【Linux笔记】缓冲区的概念到标准库的模拟实现
一、缓冲区 “缓冲区”这个概念相信大家或多或少都听说过,大家其实在C语言阶段就已经接触到“缓冲区”这个东西,但是相信大家在C语言阶段并没有真正弄懂缓冲区到底是个什么东西,也相信大家在C语言阶段也因为缓冲区的问题写出过各种bug。 其…...
【前端收藏】前端小作文-前端八股文知识总结(超万字超详细)持续更新
有了这个八股文不仅对你基础知识的巩固,不管你是几年老前端程序员,还是要去面试的,文章覆盖了前端常用及不常用的方方面面,都是前端日后能用上的,对你的前端知识有总结意义,看完后,懂的不懂的都…...
GNSS模块的惯导技术:引领定位科技的前沿
全球导航卫星系统(GNSS)模块的惯导技术是一项颇具前瞻性的科技,它结合了全球定位系统和惯性导航技术,为各个领域的定位需求提供了更为精准和可靠的解决方案。本文将深入探讨GNSS模块的惯导技术,以及它如何在多个领域中…...
Flutter 和 Android原生(Activity、Fragment)相互跳转、传参
前言 本文主要讲解 Flutter 和 Android原生之间,页面相互跳转、传参, 但其中用到了两端相互通信的知识,非常建议先看完这篇 讲解通信的文章: Flutter 与 Android原生 相互通信:BasicMessageChannel、MethodChannel、…...
Kubernetes基础(十一)-CNI网络插件用法和对比
1 CNI概述 1.1 什么是CNI? Kubernetes 本身并没有实现自己的容器网络,而是借助 CNI 标准,通过插件化的方式来集成各种网络插件,实现集群内部网络相互通信。 CNI(Container Network Interface,容器网络的…...
yo!这里是单例模式相关介绍
目录 前言 特殊类设计 只能在堆上创建对象的类 1.方法一(构造函数下手) 2.方法二(析构函数下手) 只能在栈上创建对象的类 单例模式 饿汉模式实现 懒汉模式实现 后记 前言 在面向找工作学习c的过程中,除了基本…...
2023年上-未来几年我要做什么
1月份,离职。 2月份,春节休假回来,中旬去参加了一个月的瑜伽培训,学会了倒立、鹤蝉。。。。 3月份,瑜伽培训结束,开始收拾房子,并调研各类项目。 4月份,参与了朋友的区块链项目 …...
智能汽车竞赛摄像头处理(3)——动态阈值二值化(大津法)
前言 (1)在上一节中,我们学习了对图像的固定二值化处理,可以将原始图像处理成二值化的黑白图像,这里面的本质就是将原来的二维数组进行了处理,处理后的二维数组里的元素都是0和255两个值。 (2…...
BGP协议
1.BGP相关概念 1.1 BGP的起源 不同自治系统(路由域)间路由交换与管理的需求推动了EGP的发展,但是EGP的算法简单,无法选路,从而被BGP取代。 自治系统:(AS) IGP:自治系统…...
一个完整工作流管理系统的组成部分
一个完整工作流管理系统的组成部分 一个完整的工作流管理系统通常由工作流引擎、工作流设计器、流程操作、工作流客户端程序、流程监控、表单设计器、与表单的集成以及与应用程序的集成八个部分组成。 一、工作流组成 1. 工作流引擎 工作流引擎作为工作流管理系统的核心部分&…...
鱼和熊掌如何兼得?一文解析RDS数据库存储架构升级
在2023年云栖大会上,阿里云数据库产品事业部负责人李飞飞在主题演讲中提到,瑶池数据库推出“DB存储”一体化能力,结合人工智能、机器学习、存储等方法和创新能力,实现Buffer Pool Extension能力和智能冷温热数据分层能力。在大会的…...
中科大计网学习记录笔记(五):协议层次和服务模型
前言: 学习视频:中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程 该视频是B站非常著名的计网学习视频,但相信很多朋友和我一样在听完前面的部分发现信…...
同构异机迁移方案2_目标服务器仅安装数据库软件scp物理文件
源端和目标端的数据库版本需要保持一致,补丁版本可以不一致,目标端磁盘空间不能小于源端空间,目标端只需要安装 Oracle 软件即可。 特别说明:本文档案例Oracle的安装路径不同,数据目录一致,采用scp的方式实…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
