什么是PROXY?
发布网友
发布时间:2022-04-23 16:12
我来回答
共7个回答
懂视网
时间:2022-05-14 19:22
本篇文章给大家带来的内容是关于ES6中的Proxy是什么?Proxy的详细分析,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
proxy的中文有代理的意思。在其他的程序设计语言中这个单词也具有类似的含义。
它是什么
Proxy是一个构造器。在js中构造器的典型特点就是首字母大写,我们通过new Proxy(原对象,{代理列表})格式去创建对象,创建的这个对象我们称之为代理对象。
即:
代理对象 = new Proxy(原对象,{代理列表})
之所以要额外产生这么一个代理对象,好处在于可以保持原对象不变,在代理对象中添加新的功能,或者是改造某些功能。而这个原对象则可以在适当的时机回滚回去。可以与设计模式中的代理模式对比理解。
使用格式
var obj;
var proxyObj = new Proxy(obj, {
对obj的操作1: 函数1,
对obj的操作2: 函数2,
...
})
入门示例
Proxy的基本示范
var obj = {name:'fan',age:34}
console.info(obj.name)
var proxyObj = new Proxy(obj,{
get:function(target,key,receiver){console.info(target,key,receiver); return 'no'}
})
console.info(proxyObj.name)
console.info(proxyObj.abc)
解释如下:
proxxy对象是在obj对象的基础之上创建的一个新对象。
proxyObj.name是要去获取proxy对象的name属性。.操作符会自动去调用get()方法
。这一点非常重要,在js中,对象是属性的无序集合。对象只有属性,其他什么都没有
. 而我们经常说的调用对象的某个方法:例如数组对象arr的sort方法:arr.sort(),这里的sort也是arr对象的属性(更严谨一点,sort是arr.__proto__这个对象的属性),与length属性相比,sort属性的属性值是一个函数,所以在它的后面加()来执行这个函数,而length属性的值是一个数值,所以不需要加()就可以直接使用。再次强调一下:对象的.操作,会自动去调用get
。当然,我们平时使用.操作时,是没有感知到这一点的。
在new Proxy的第二个参数中,明确设置了get的方法:当访问proxyObj的任意属性时,输出target,key,receiver的值,并统一返回no。所以proxyObj.name和proxyObj.abc都会得到no。
写到这里你会觉得原对象与代理对象之间有什么关系呢?为什么叫代理
呢?
理解代理的作用
代理对象可以理解为明星的经纪人。
外界 <----> 原对象;
外界 <----> 代理对象 <------> 原对象;
还以上面的代码为例,改进一下需求:如果有人问obj的名字,就直接告诉对方; 如果有人问obj的年龄,就返回小5岁的年龄。
var obj = {name:'fan',age:34}
console.info(obj.age) // 34
var proxyObj = new Proxy(obj,{
get:function(target,key,receiver){
console.info(target === obj); //true
console.info(receiver === proxyObj); //true
if('age' === key){
return target[key] - 5;
}
else{
return target[key]
}
}
})
console.info(proxyObj.age) // 34- 5 = 29
解释如下:
get函数中的三个参数:target,key,receiver。 target就是原对象j,keys是当前的属性名;receiver是代理对象。你可以在get方法中做任意的自定义的处理。
代理对象与原对象的关系
var arr = [2,1]
var proxyArr = new Proxy(arr,{} )
proxyArr.push(3);
console.info(arr) // [2,1,3]
console.info(arr === proxyArr) // false
arr.sort();
console.info(proxyArr[0]) // 1
以上代码中,这个代理对象并没有做任何的特殊操作。理解为明星的经理人消极怠工:原封不动地转告外界的信息给明星本身。所以在proxyArr上做到操作会直接影响到arr上。
同理,在arr上的操作,也会影响proxyArr。
但是要注意:proxyArr与arr是两个不同的对象:arr !== proxyArr。
你可能会想一想:为什么proxyArr能够直接使用push这个方法呢?原因是:
proxyArr.__proto__ === arr.__proto__ === Array.prototype
前一个等式成立的原因是由new Proxy的基因决定的:原对象被代理了嘛。
代理列表
在new Proxy的第二个参数中,可以设置的代理属性如下:
var proxyObj = new Proxy(obj, {
get: function(tagert,key,receiver){},
set: function(tagert,key,receiver){},
has: function(tagert,key){},
deleteProperty: function(tagert,key){},
ownKeys: function(tagert){},
getOwnPropertyDescriptor: function(tagert,key){},
defineProperty: function(tagert,key,desc){},
preventExtensions: function(tagert){},
getPrototypeOf: function(tagert){},
isExtensible: function(tagert){},
setPrototypeof: function(tagert,proto){},
apply: function(tagert,obj,args){},
construct: function(tagert,args){},
})
get() 代理的应用
允许数组下标是负值
在js中,数组的有效下表是从0开始的。
var arr = [1,2,3];
console.info(arr[0]) // 1
console.info(arr[-1]) // undefined
console.info(arr[100]) // undefined
值得注意的是,下表越界或者是负值的情况下,得到的结果是undefined,而不是报错。
下面我们希望数组可以取负值下表,规则如下:
-n表示倒数第n个元素。例如:-1表示倒数第一个元素。
使用Proxy解决如下:
var arr = [1,2,3];
var proxyArr = new Proxy(arr,{
get: (target,prop)=>{
let index = Number(prop);
if(index < 0){
prop = target.length + index;
}
return target[prop];
}
})
console.info(arr[-1]); // undefined
console.info(proxyArr[-1]); // 3
注意:
Number()可以把传入的值转成数值型。非数值 --> NaN;
如果是proxyArr.push(3),由于此时的prop是'push',所以不会进入if分支。
如果是proxyArr[-1],此时的prop是'-1',所以会进入到if分支:把prop从-1改成 2 ,从而实现了被代理的效果。
此时,完全可以把proxyArr当作一个数组来使用,sort,push等方法均可以调用。Array.isArray(proxyArr) === true
当然,你也可以进一步封装成工厂函数。
function myArr(...args){
var arr = new Array(...args);
var proxyArr = new Proxy(arr,{
get: (target,key)=>{
let index = Number(key);
if(index < 0){
key = target.length + index;
}
return target[key];
}
})
return proxyArr;
}
var obj = myArr([1,2,3]);
console.info(obj[0],obj[-1])
链式运算
var double = n => n*2;
var pow2 = n => n*n;
var half = n => n/ 2;
var add1 = n => n+1;
function pipe (num){
let funs = []
let obj = new Proxy({},{
get:function(target,prop){
if(prop === 'end'){
return funs.reduce((val,currentfn)=>currentfn(val),num);
}else{
funs.push(window[prop])
}
return obj;
}
})
return obj;
};
console.info( pipe(4).double.pow2.end);
console.info( pipe(4).pow.double.pow2.add1.end);
热心网友
时间:2022-05-14 16:30
PROXY的意思是:代理人;委托书;代用品
PROXY 读法 英 ['prɒksɪ] 美 ['prɑksi]
短语:
1、proxy server 代理服务系统
2、proxy service 代理服务
3、proxy war 代理战争;代理人战争
例句:
How can I determine my proxy settings?
我怎么知道我的代理服务器的设置?
扩展资料
proxy的近义词:agent
词语用法:
1、agent的基本意思是“代理人,代理商; 经纪人”,指受当事人委托,代表其进行某种活动(如贸易、诉讼、纳税或签订合同等)的人; agent也可作“作用者,原动力,动因; 作用剂”解,多用于正式或术语中。也可作“密探,特工”解。
2、有时指“secret agent”,表示“特务,间谍”。
词义辨析:
delegate,agent,substitute这些名词有“代表、代理人”之意。
1、delegate指一般被派参加某一会议的代表。
2、agent普通用词,通常指经授权代理另一个人或团体,或指在双方之间代表一方起中间作用的人。
3、substitute主要强调某人或某物可以用来代替别的人或物的作用。
热心网友
时间:2022-05-14 17:48
Proxy是什么呢,是代理。普通的因特网访问是一个典型的客户机与服务器结构:用户利用计算机上的客户端程序,如浏览器发出请求,远端WWW服务器程序响应请求并提供相应的数据。而Proxy处于客户机与服务器之间,对于服务器来说,Proxy是客户机,Proxy提出请求,服务器响应;对于客户机来说,Proxy是服务器,它接受客户机的请求,并将服务器上传来的数据转给客户机。它的作用很象现实生活中的代理服务商。因此Proxy Server的中文名称就是代理服务器。
Proxy Server的工作原理是:当客户在浏览器中设置好Proxy Server后,你使用浏览器访问所有WWW站点的请求都不会直接发给目的主机,而是先发给代理服务器,代理服务器接受了客户的请求以后,由代理服务器向目的主机发出请求,并接受目的主机的数据,存于代理服务器的硬盘中,然后再由代理服务器将客户要求的数据发给客户。
代理服务器的作用有四个:
一、提高访问速度。因为客户要求的数据存于代理服务器的硬盘中,因此下次这个客户或其它客户再要求相同目的站点的数据时,就会直接从代理服务器的硬盘中读取,代理服务器起到了缓存的作用,对热门站点有很多客户访问时,代理服务器的优势更为明显。
二、Proxy可以起到防火墙的作用。因为所有使用代理服务器的用户都必须通过代理服务器访问远程站点,因此在代理服务器上就可以设置相应的*,以过滤或屏蔽掉某些信息。这是局域网网管对局域网用户访问范围*最常用的办法,也是局域网用户为什么不能浏览某些网站的原因。拨号用户如果使用代理服务器,同样必须服从代理服务器的访问*,除非你不使用这个代理服务器。
三、通过代理服务器访问一些不能直接访问的网站。互联网上有许多开放的代理服务器,客户在访问权限受到*时,而这些代理服务器的访问权限是不受*的,刚好代理服务器在客户的访问范围之内,那么客户通过代理服务器访问目标网站就成为可能。国内的高校多使用教育网,不能出国,但通过代理服务器,就能实现访问因特网,这就是高校内代理服务器热的原因所在。
四、安全性得到提高。无论是上聊天室还是浏览网站,目的网站只能知道你来自于代理服务器,而你的真实IP就无法测知,这就使得使用者的安全性得以提高。
代理服务器的设置:
要设置代理服务器,必须先知道代理服务器地址和端口号,然后在IE或NC的代理服务器设置栏中填入相应地址和端口号就可以了。假设我们有一个代理服务器的地址是Proxy.net.net,端口号是3000,在IE中的配置方法是使用查看菜单的Internet选项/连接/代理服务器,然后在通过代理服务器访问Internet选项前面的复选框中打上钩,在地址框中填入代理服务器地址,如本例中假设代理服务器地址是proxy.net.net,再在端口框中填上端口号3000,点一下最下方的应用按钮,再点确定,设置完成。下次再使用IE时用户就会发现,无论你浏览什么网站,IE总是先与代理服务器连接。用NC的话,设置稍繁一点。使用edit菜单下的Preferences菜单项,再选择Advanced下的Proxies,此时在右侧Proxies选项中选择第二项Manral Proxy configuration,再点其右边的View…按钮,就会出现代理服务器的配置界面,在代理服务器地址和端口号栏中填入相应的内容,点击OK,退回到参数设置窗口,再点击OK,代理服务器的设置工作就完成了。当客户再次浏览网页时,就会自动向你设定的代理服务器发出申请,并得到数据,在浏览网站时,无论是IE或是NC都可以在浏览器状态栏中清楚地看到先连代理服务器,再连目标网站的过程。
但是,千万不要把Proxy Server和Router搞混了,Proxy Server是建立在应用层上的服务软件,而Router则是一台网络设备或一台电脑,它是工作在IP层的,数据到达IP层后就进行转发。一般一个Proxy Server工作在一台既具有MODEM和网卡的计算机上的。不同的Proxy Server软件提供的服务不同,一般都提供WWW,FTP等常用的服务。在内部网中每台客机都必须具有一个独立的IP地址,且在客机的"控制面板-Internet 项"中"连接"中配置使用Proxy Server且指向Proxy Server IP地址和服务的端口号。当Proxy Server启动时,将利用Winsock.dll开辟一个指定的服务端口,等待客机的的请求。当Proxy Server的MODEM拨号上网后,你的Proxy Server就可以工作了。当你在你的IE发出一连接请求时,你的客机就直接将数据包发到Proxy Server,当服务器捕获这个IP包时,首先要分析它是什么请求,如果是HTTP请求,Proxy Server就向你的ISP发出HTTP请求,当Proxy Server收到回应时,就将此IP包转发到内部网络上,你的客机就会获得此IP包。另外你的Proxy Server还可以做为一个很好的防火墙。具体操作,请参考你的Proxy Server的readme文件。
在您访问因特网的Web服务器时,您可知道会有多少个人信息泄漏给别人?在上网访问的过程中,Web浏览器至少会把20多项有关您个人的信息在您毫无觉察的情况下悄悄地送往Web服务器上。 这些个人信息如果是被传送到知名网站或是大型企业的Web服务器上,还不会有什么大问题。若是被传送到连是谁开设的网站都不清楚的Web服务器上,则会令人深感不安。Web浏览器传送给Web服务器的信息,用行话来说就是"环境变量"。其主要内容为:(1)分配给电脑的IP地址(REMOTE_A DDR)和主机名(REMOTE_HOST);(2)Web浏览器所使用的端口序号(REMOTE_PORT);(3)Web浏览器的产品名(HTTP_USER_AGENT);(4)所浏览过的网站中最新一个的网页地址(HTTP_REFERER)等。
上述各项虽然不包含电子邮件地址及姓名等的个人信息,但(1)中的IP地址和主机名在安全性方面委实令人难以放心,可是采取什么样的方法才可以遮掩自己的IP地址呢?
解决这个问题其实很简单。只要通过代理服务器(proxy server)访问Web服务器即可。代理服务器的作用在于它可替Web服务器承受来自各个终端的访问请求。在企业网方面,代理服务器被设置在公司内部的LAN与因特网相互链接的部分上。拔号上网时,可使用因特网接驳商提供的代理服务器即可。
热心网友
时间:2022-05-14 19:23
proxy是代理人的意思
Proxy是什么呢,是代理。普通的因特网访问是一个典型的客户机与服务器结构:用户利用计算机上的客户端程序,如浏览器发出请求,远端www服务器程序响应请求并提供相应的数据。而Proxy处于客户机与服务器之间,对于服务器来说,Proxy是客户机,Proxy提出请求,服务器响应;对于客户机来说,Proxy是服务器,它接受客户机的请求,并将服务器上传来的数据转给客户机。它的作用很象现实生活中的代理服务商。因此Proxy Server的中文名称就是代理服务器。
Proxy Server的工作原理是:当客户在浏览器中设置好Proxy Server后,你使用浏览器访问所有www站点的请求都不会直接发给目的主机,而是先发给代理服务器,代理服务器接受了客户的请求以后,由代理服务器向目的主机发出请求,并接受目的主机的数据,存于代理服务器的硬盘中,然后再由代理服务器将客户要求的数据发给客户。
代理服务器的作用有四个:
一、提高访问速度。因为客户要求的数据存于代理服务器的硬盘中,因此下次这个客户或其它客户再要求相同目的站点的数据时,就会直接从代理服务器的硬盘中读取,代理服务器起到了缓存的作用,对热门站点有很多客户访问时,代理服务器的优势更为明显。
二、Proxy可以起到防火墙的作用。因为所有使用代理服务器的用户都必须通过代理服务器访问远程站点,因此在代理服务器上就可以设置相应的*,以过滤或屏蔽掉某些信息。这是局域网网管对局域网用户访问范围*最常用的办法,也是局域网用户为什么不能浏览某些网站的原因。拨号用户如果使用代理服务器,同样必须服从代理服务器的访问*,除非你不使用这个代理服务器。
三、通过代理服务器访问一些不能直接访问的网站。互联网上有许多开放的代理服务器,客户在访问权限受到*时,而这些代理服务器的访问权限是不受*的,刚好代理服务器在客户的访问范围之内,那么客户通过代理服务器访问目标网站就成为可能。国内的高校多使用教育网,不能出国,但通过代理服务器,就能实现访问因特网,这就是高校内代理服务器热的原因所在。
四、安全性得到提高。无论是上聊天室还是浏览网站,目的网站只能知道你来自于代理服务器,而你的真实ip就无法测知,这就使得使用者的安全性得以提高。
代理服务器的设置:
要设置代理服务器,必须先知道代理服务器地址和端口号,然后在ie或nc的代理服务器设置栏中填入相应地址和端口号就可以了。假设我们有一个代理服务器的地址是Proxy.net.net,端口号是3000,在ie中的配置方法是使用查看菜单的Internet选项/连接/代理服务器,然后在通过代理服务器访问Internet选项前面的复选框中打上钩,在地址框中填入代理服务器地址,如本例中假设代理服务器地址是proxy.net.net,再在端口框中填上端口号3000,点一下最下方的应用按钮,再点确定,设置完成。下次再使用ie时用户就会发现,无论你浏览什么网站,ie总是先与代理服务器连接。用nc的话,设置稍繁一点。使用edit菜单下的Preferences菜单项,再选择Advanced下的Proxies,此时在右侧Proxies选项中选择第二项Manral Proxy configuration,再点其右边的View…按钮,就会出现代理服务器的配置界面,在代理服务器地址和端口号栏中填入相应的内容,点击OK,退回到参数设置窗口,再点击OK,代理服务器的设置工作就完成了。当客户再次浏览网页时,就会自动向你设定的代理服务器发出申请,并得到数据,在浏览网站时,无论是ie或是nc都可以在浏览器状态栏中清楚地看到先连代理服务器,再连目标网站的过程。
但是,千万不要把Proxy Server和Router搞混了,Proxy Server是建立在应用层上的服务软件,而Router则是一台网络设备或一台电脑,它是工作在ip层的,数据到达ip层后就进行转发。一般一个Proxy Server工作在一台既具有modem和网卡的计算机上的。不同的Proxy Server软件提供的服务不同,一般都提供www,ftp等常用的服务。在内部网中每台客机都必须具有一个独立的ip地址,且在客机的"控制面板-Internet 项"中"连接"中配置使用Proxy Server且指向Proxy Server ip地址和服务的端口号。当Proxy Server启动时,将利用Winsock.dll开辟一个指定的服务端口,等待客机的的请求。当Proxy Server的modem拨号上网后,你的Proxy Server就可以工作了。当你在你的IE发出一连接请求时,你的客机就直接将数据包发到Proxy Server,当服务器捕获这个ip包时,首先要分析它是什么请求,如果是HTTP请求,Proxy Server就向你的isp发出HTTP请求,当Proxy Server收到回应时,就将此ip包转发到内部网络上,你的客机就会获得此IP包。另外你的Proxy Server还可以做为一个很好的防火墙。具体操作,请参考你的Proxy Server的readme文件。
在您访问因特网的Web服务器时,您可知道会有多少个人信息泄漏给别人?在上网访问的过程中,Web浏览器至少会把20多项有关您个人的信息在您毫无觉察的情况下悄悄地送往Web服务器上。 这些个人信息如果是被传送到知名网站或是大型企业的Web服务器上,还不会有什么大问题。若是被传送到连是谁开设的网站都不清楚的Web服务器上,则会令人深感不安。Web浏览器传送给Web服务器的信息,用行话来说就是"环境变量"。其主要内容为:(1)分配给电脑的IP地址(REMOTE_A ddr)和主机名(REMOTE_host);(2)Web浏览器所使用的端口序号(REMOTE_PORT);(3)Web浏览器的产品名(HTTP_USER_AGENT);(4)所浏览过的网站中最新一个的网页地址(HTTP_REFERER)等。
上述各项虽然不包含电子邮件地址及姓名等的个人信息,但(1)中的IP地址和主机名在安全性方面委实令人难以放心,可是采取什么样的方法才可以遮掩自己的IP地址呢?
解决这个问题其实很简单。只要通过代理服务器(proxy server)访问Web服务器即可。代理服务器的作用在于它可替Web服务器承受来自各个终端的访问请求。在企业网方面,代理服务器被设置在公司内部的lan与因特网相互链接的部分上。拔号上网时,可使用因特网接驳商提供的代理服务器即可。
热心网友
时间:2022-05-14 21:14
字面意思是代理,一般指代理服务器 PROXY server。
代理服务器用于web上网,也就是看网页,当你的电脑不能直接联网时,可以通过把另一台可联网的电脑设置成代理服务器,然后你的电脑连上它,设置好代理后便可以实现上网
热心网友
时间:2022-05-14 23:39
代理(英语:Proxy),也称网络代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止攻击。
提供代理服务的电脑系统或其它类型的网络终端称为代理服务器(英文:Proxy Server)。形象的说,它是网络信息的中转站。代理服务器就好象一个大的Cache,这样就能显著提高浏览速度和效率。更重要的是:Proxy Server(代理服务器)是Internet链路级网关所提供的一种重要的安全功能。
热心网友
时间:2022-05-15 02:20
代理