代理服务器就是客户端和服务端之间的“中间商”,即HTTP请求通过代理服务器转发给服务器,再将服务器的响应返回给客户端的行为。
代理服务器可以用来作为缓存服务器,也可以用来隐藏用户身份(正向代理)或者服务器身份(反向代理)增加安全性。
所谓正向代理,是从客户/客户端角度出发,为了从源服务器中取得内容,由客户端向代理服务器发出请求,并指定目标访问服务器,然后,
代理服务器向源服务器转交需求,并将获得的内容返回给客户端。需要注意的是,在正向代理过程中隐藏了真是请求的客户端,即服务端不知道正式请求客户是谁。
所谓反向代理,是从客户端发向反向代理出请求,反向代理服务器收到需求后判断请求走向何处,然后再将结果反馈给客户端。
同样需要注意的是,在反向代理过程中,隐藏了内部服务器的信息,用户不需要知道是具体哪一台服务器提供的服务,只要知道反向代理服务器是谁就好了,我们甚至可以把反向代理服务器当做真正服务器看待。
这种形式的代理通常被用作实现负载均衡,比如Nginx就是一种出色的反向代理服务器。
反向代理解决跨域问题:我们前端在使用 vue-cli 这种脚手架工具进行开发时,经常会遇到跨域的问题,因为项目自身启动本地服务是需要占用一个端口(如 http://localhost:8080)的,
所以必然会产生跨域的问题(因为本地服务端口和服务端接口地址不是同源)。
在使用webpack做构建工具的项目中,经常会使用proxyTable代理实现跨域。
之所以出现跨域是因为浏览器有同源策略的限制,但服务器是没有的同源策略的限制的。
当我们本地服务(假设域名:http://localhost:8080)要请求目标服务器(假设域名:target.com)的资源的时候,我们不直接请求 target.com,而是请求本地服务自身 http://localhost:8080(这时是同源请求,不存在跨域),本地代理服务再将接口转发给 target.com(注意这时候是两个服务器直接的通信了,而不是客户端和服务器的通信,所以更不存在跨域),本地服务获取到目标服务器的响应数据之后通过再代理伪装成本地服务请求的返回值返回给客户端。
易代理ip产品都包含了正向代理与反向代理,真正的丰富了用户各种需求http://www.ydaili.cn/
热门标签
最新标签