什么是 Proxy?
目录
Proxy 的作用
1. 流量过滤
2. 记录日志
3. 加快访问速度
4. 隐藏 IP 地址
Proxy 的分类
1. 按协议分类
- HTTP 代理:只支持 HTTP 协议的代理服务器,它可以缓存 HTTP 请求和响应并过滤 HTTP 流量。
- FTP 代理:只支持 FTP 协议的代理服务器,它可以过滤 FTP 流量并缓存 FTP 文件。
- SOCKS 代理:通常用于路由 UDP 和 TCP 流量,特别是通过防火墙和 NAT 网络使用的流量。这种代理没有协议限制,可以随意使用。
- SSL 代理:通常用于安全网站的访问,SSL 协议允许代理服务器拦截传输的数据并进行解密以进行内容过滤和安全审计。
- SMTP 代理:只支持 SMTP 协议的代理服务器,它可以过滤和缓存邮件流量。
2. 按功能分类
- 正向代理:代替客户端向服务器发起请求。例如,某些团体提供的 VPN 和代理服务器可以让用户从任何位置连接至 Internet 并隐藏他们的 IP 地址。
- 反向代理:代替服务器响应客户端的请求。例如,使用反向代理的负载均衡器会将客户端请求发送到多个服务器,以便在不同服务器上均衡负载并提高响应速度。
- 透明代理:不需要客户端进行任何配置就可以使用的代理服务器。它是对客户端不可见的代理服务器,如果不小心使用它,可能会泄露用户的隐私。
- 匿名代理:隐藏客户端的 IP 地址,但仍然允许目标服务器看到代理服务器的 IP 地址。
- 高匿代理:隐藏了客户端的 IP 地址,并且代理服务器的 IP 地址也不会被目标服务器看到。
3. 按安全性分类
- 透明代理:易受攻击,因为它们允许未经授权的用户访问受保护的网络资源。
- 身份验证代理:要求用户提供身份验证凭据,这可以减少非法访问的风险。
- Socks5 代理:使用加密算法协商,为客户端和服务器之间的安全通信提供保护。
Proxy 的代码示例
总结
Proxy 代表“代理”,是计算机网络中的一个概念。代理是一种网络应用程序,它可以充当客户端或服务器的“代理”或“中间人”,以便在两个或多个点之间传递流量。通过使用代理,客户端和服务器可以在互联网上进行通信而不直接连接。此外,代理还可以过滤流量、记录日志、缓存文件等。
代理服务器是一种常见的代理类型,它可以过滤流量、记录请求和响应等。代理服务器通常在网络边缘部署,以便能够监视并过滤进出网络的流量。代理服务器还可以缓存响应,从而提高访问速度和减轻网络拥塞。
Proxy 的作用
代理服务器有很多用途。以下是一些常见的用途:
1. 流量过滤
代理服务器可以过滤流量,禁止访问特定网站或服务。它可以监测网络活动并根据设定的规则阻止非法的行为。
2. 记录日志
代理服务器可以记录所有传入和传出的 HTTP 请求和响应。这些日志可以用于网络安全审核以及对网络流量进行分析。
3. 加快访问速度
代理服务器可以缓存常用的资源,从而减少资源的响应时间。它可以在响应之前拦截请求并返回已经缓存的响应,从而加快访问速度。
4. 隐藏 IP 地址
代理服务器可以隐藏客户端的真实 IP 地址,从而保护用户的隐私。它可以代表客户端向网络上的其他服务发起请求,从而隐藏客户端的真实 IP 地址。
Proxy 的分类
Proxy 的分类方法可以按照使用协议、功能和安全性等多种方式。下面是常见的分类方式:
1. 按协议分类
代理服务器可以根据代理协议的类型进行分类,例如:
- HTTP 代理:只支持 HTTP 协议的代理服务器,它可以缓存 HTTP 请求和响应并过滤 HTTP 流量。
- FTP 代理:只支持 FTP 协议的代理服务器,它可以过滤 FTP 流量并缓存 FTP 文件。
- SOCKS 代理:通常用于路由 UDP 和 TCP 流量,特别是通过防火墙和 NAT 网络使用的流量。这种代理没有协议限制,可以随意使用。
- SSL 代理:通常用于安全网站的访问,SSL 协议允许代理服务器拦截传输的数据并进行解密以进行内容过滤和安全审计。
- SMTP 代理:只支持 SMTP 协议的代理服务器,它可以过滤和缓存邮件流量。
2. 按功能分类
代理服务器可以根据其功能进行分类,例如:
- 正向代理:代替客户端向服务器发起请求。例如,某些团体提供的 VPN 和代理服务器可以让用户从任何位置连接至 Internet 并隐藏他们的 IP 地址。
- 反向代理:代替服务器响应客户端的请求。例如,使用反向代理的负载均衡器会将客户端请求发送到多个服务器,以便在不同服务器上均衡负载并提高响应速度。
- 透明代理:不需要客户端进行任何配置就可以使用的代理服务器。它是对客户端不可见的代理服务器,如果不小心使用它,可能会泄露用户的隐私。
- 匿名代理:隐藏客户端的 IP 地址,但仍然允许目标服务器看到代理服务器的 IP 地址。
- 高匿代理:隐藏了客户端的 IP 地址,并且代理服务器的 IP 地址也不会被目标服务器看到。
3. 按安全性分类
代理服务器还可以根据其安全性进行分类,例如:
- 透明代理:易受攻击,因为它们允许未经授权的用户访问受保护的网络资源。
- 身份验证代理:要求用户提供身份验证凭据,这可以减少非法访问的风险。
- Socks5 代理:使用加密算法协商,为客户端和服务器之间的安全通信提供保护。
Proxy 的代码示例
const target = {name: 'John',age: 30
};const handler = {get(target, property) {console.log(`Getting property: ${property}`);return target[property];},set(target, property, value) {console.log(`Setting property: ${property} to ${value}`);target[property] = value;}
};const proxy = new Proxy(target, handler);proxy.name; // Output: "Getting property: name",返回 "John"
proxy.age = 31; // Output: "Setting property: age to 31"
总结
代理是网络中一个非常重要的概念,它可以帮助客户端和服务器之间进行通信,过滤流量、记录日志、缓存文件等。代理服务器可以根据代理协议的类型、功能和安全性等进行分类。Python 中的 requests 库提供了简单易用的代理支持,可以轻松地使用代理服务器进行网络请求。
相关文章:
什么是 Proxy?
目录 Proxy 的作用 1. 流量过滤 2. 记录日志 3. 加快访问速度 4. 隐藏 IP 地址 Proxy 的分类 1. 按协议分类 - HTTP 代理:只支持 HTTP 协议的代理服务器,它可以缓存 HTTP 请求和响应并过滤 HTTP 流量。 - FTP 代理:只支持 FTP 协议的…...
Vue系列:Vue Element UI中,使用按钮实现视频的播放、停止、停止后继续播放、播放完成后重新播放功能
最近在工作中有个政务大屏用到了视频播放; 技术栈是Vue2、Element UI; 要实现的功能是:使用按钮实现视频的播放、停止、停止后继续播放、播放完成后重新播放功能 具体可以按照以下步骤进行操作: 引入插件: 在Vue组件…...

.Net 8 Blazor下 Auto交互渲染模式试用
一、环境 C:\Users\zhuji>dotnet --version 8.0.100C:\Users\zhuji>dotnet --list-sdks 5.0.403 [C:\Program Files\dotnet\sdk] 6.0.404 [C:\Program Files\dotnet\sdk] 8.0.100 [C:\Program Files\dotnet\sdk] Microsoft Visual Studio Enterprise 2022 (64 位) - Cu…...

AndroidStudio - 新版本 Logcat 使用详解
最近这俩天正好有时间给自己做一下减法,忘记是去年还是今年,在升级 AndroidStudio 后使用 Logcat查看日志的方式也发生了一些变化,虽然一直在使用,但每当看到之前还未关闭 Logcat 命令行工具额昂也,就感觉可能还存在知…...
Webpack ECMAScript 模块
文章目录 前言标题一导出导入将模块标记为 ESM 后言 前言 hello world欢迎来到前端的新世界 😜当前文章系列专栏:webpack 🐱👓博主在前端领域还有很多知识和技术需要掌握,正在不断努力填补技术短板。(如果出现错误&a…...

knife4j集合化postman
knife4j集合化postman 01 knife4j的介绍 基于 JavaMVC的集成框架swagger的进一步强化,在原有通过注释就能生成文档的前身swagger-bootstrap-ui之上,增加了postman的测试功能,优化了文档的UI界面,在测试api接口的方面有了极大的进…...
MongoDB的原子性和多文档事务处理
原子性和事务处理是数据库操作的核心,保证了数据的准确性。依据数据库原子性,数据库和使用数据库的人员定义事务处理的方式。本文依据Mongodb的官方文档,整理Mongodb数据库的原子性和事务处理方法。 Mongodb的原子操作 Mongodb中,…...

代理模式 1、静态代理 2、动态代理 jdk自带动态代理 3、Cglib代理
文章目录 代理模式1、静态代理2、动态代理jdk自带动态代理 3、Cglib代理 来和大家聊聊代理模式 代理模式 代理模式:即通过代理对象访问目标对象,实现目标对象的方法。这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操…...

ELK+filebeat+kafka
无需创建logstash的端口,直接创建topic 远程收集mysql和httpd的日志 (一)安装nginx和mysql服务 1、打开mysql的日志功能 2、创建日志(创库、创表、添加数据) (1)mysql服务器上安装http system…...
LLVM学习笔记(63)
4.4.3.3.2.3. 向量操作数类型的处理 下面开始处理向量类型。在默认情形下这些操作都会拆分为更小的操作或者调用库。 X86TargetLowering::X86TargetLowering(续) 667 // Some FP actions are always expanded for vector types. 668 for…...

【python+requests】接口自动化测试
这两天一直在找直接用python做接口自动化的方法,在网上也搜了一些博客参考,今天自己动手试了一下。 一、整体结构 上图是项目的目录结构,下面主要介绍下每个目录的作用。 Common:公共方法:主要放置公共的操作的类,比如数据库sql…...

plt创建指定色系
1、创建不连续色系 import matplotlib.pyplot as plt from matplotlib.colors import ListedColormap# 定义颜色的RGB值 colors [(0.2, 0.4, 0.6), # 蓝色(0.8, 0.1, 0.3), # 红色(0.5, 0.7, 0.2),(0.3,0.5,0.8)] # 绿色# 创建色系 cmap ListedColormap(colors)# 绘制…...

Java多线程-第20章
Java多线程-第20章 1.创建线程 Java是一种支持多线程编程的编程语言。多线程是指在同一程序中同时执行多个独立任务的能力。在Java中,线程是一种轻量级的子进程,它是程序中的最小执行单元。Java的多线程编程可以通过两种方式实现:继承Threa…...

寿险公司通过开源治理保障数字创新,安全打通高质量服务新通道
某寿险公司致力于为消费者提供人性化的产品和服务,在中国保险市场中始终保持前列。该寿险公司以挖掘和满足客户需求为出发点,从产品开发、渠道销售、运营流程和售后服务等各环节,借助数字化工具,不断地努力探索并提升服务品质。 精…...

SpringBoot中的部分注解
1.SpringBoot/spring SpringBootApplication: 包含Configuration、EnableAutoConfiguration、ComponentScan通常用在主类上; Repository: 用于标注数据访问组件,即DAO组件; Service: 用于标注业务层组件; RestController: 用…...
蓝桥杯-02-蓝桥杯C/C++组考点与14届真题
文章目录 蓝桥杯C/C组考点与14届真题参考资源C/C组考点1. 组别2. 竞赛赛程3. 竞赛形式4. 参赛选手机器环境5. 试题形式5.1. 结果填空题5.2. 编程大题 6. 试题考查范围7. 答案提交8. 评分9. 样题样题 1:矩形切割(结果填空题)样题 2:…...
计算机杂谈系列精讲100篇-【计算机应用】关于TensorFlow和PyTorch的一些看法
目录 前言 知识储备 PyTorch使用高频代码 导入包和版本查询...
Uni-App知识点
文章目录 一、事件总线二、什么是事件总线三、触发事件1、监听事件2、只监听一次3、移除监听4、触发事件注意事项5、代码示例6、注意事项 一、事件总线 除了父子组件传参之外,兄弟组件之间共享信息也是我们经常会遇到的。如果遇到这类问题,我们现在可以…...

Postman如何使用(四):接口测试
一.接口 1.程序内部接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块,发帖模块等等,那你要发帖就必须先登录,那么这两个模块就得有交互&#…...

【Qt绘图】之绘制坦克
使用绘图事件,绘制坦克。 效果 效果很逼真,想象力,有没有。 示例 代码像诗一样优雅,有没有。 包含头文件 #include <QApplication> #include <QWidget> #include <QPainter>绘制坦克类 class TankWidge…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...

全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...