web 代理(proxy)
代理位于客户端和服务器之间,扮演“中间人”的角色,对web客户端来说是扮演服务器的角色,对服务器来说是扮演客户端的角色
代理与网关的对比
代理连接的是两个或多个使用相同协议的应用程序
网关扮演的是“协议转换器”的角色,即使客户端和服务器使用的是不同的协议,客户端也可以通过网关完成与服务器之间的事务处理,例:浏览器<->web/e-mail 网关(pop) <-> e-mail服务器 ,网关将不同的协议连接起来
为什么使用代理,运用的场景
- 代理服务器可以看到并接触到所有流过的http流量,所以代理可以监视流量并对其进行修改
应用的场景 - 集中式访问控制代理(对禁止的站点强行禁止访问)
- 集中式文档访问控制代理
- 安全防火墙(提高安全性,以便对流量进行详细的检查)
- web 缓存
- 反向代理,以制作于分布式网络
- 内容路由器(根据网络流量状态以及内容类型将请求导向特定的服务器)
- 转码器 例:可以在传输gif图片时,将其转换成jpeg图片,减少尺寸,也可以对图片进行压缩,同样可以对文本压缩
- 匿名者(主动从http报文中删除身份特性,例ip,from头部,referer(请求报头,告知服务器用户的来源页面)首部,cookie,uri的会话id)
反向代理与正向代理
反射代理 - 保护和隐藏原始资源服务器
情景- 用户 c ->代理 a ->机器 b
- 正向代理 - 主体是 c,a是c的代理
- 反向代理 - 主体是 c,a是b的代理
代理服务器的部署的几种方式
- 出口代理 控制本地网络与大型因特网之间的流量,公司部分网站控制访问等
- 访问(入口)代理 用于处理客户的聚合请求,。ISP使用缓存代理来存储常用文档的副本来提高用户的下载速度
- 反向代理
- 网络交换代理 将具有足够能力的代理放在网络之间的因特网对等交换点上,通过缓存来减轻因特网节点的拥塞,并对流量进行监视
代理如何获取流量的
- 修改客户端 - 手动或自动修改浏览器代理配置,客户端的http请求直接发给代理
- 修改网络 - 在客户端不知道的情况下,拦截网络流量并将其导入代理,这种拦截称为拦截代理。例:连接使用公共wifi时,会有将所有的站点修改到本地的hosts,获取拦截的流量信息后再请求问点返回。