代理服务器(Proxy)原理


- a. Client 端向 Server 端发送一个数据需求封包;
- b. Server 端接收之后,先比对这个封包的『来源』与预计要前往的『目标』网站是否为可接受? 如果来源与目标都是合法的,或者说,来源与目标网站我们的 Proxy 都能帮忙取得资料时,那么 Server 端会开始替 Client 取得资料。这个步骤中比较重要的就是『比对政策』啦,有点像是认证的感觉啦;
- c. Server 首先会检查自己快取 (新的数据可能在内存中,较旧的数据则放置在硬盘上) 数据, 如果有 Client 所需的数据,那就将数据准备取出,而不经过向 Internet 要求数据的程序;
- 最后当然就是将数据回传给 Client 端!


- NAT 服务器的功能:就如同第九章提到的数据, Linux 的 NAT 功能主要透过封包过滤的方式, 并使用 iptables 的 nat 表格进行 IP 伪装 (SNAT) ,让客户端自行前往因特网上的任何地方的一种方式。主要的运作行为是在 OSI 七层协议的二、三、四层。由于是透过封包过滤与伪装,因此客户端可以使用的端口口号码 (第四层) 较弹性;
- Proxy 服务器的功能:主要透过 Proxy 的服务程序 (daemon) 提供网络代理的任务,因此 Proxy 能不能进行某些工作,与该服务的程序功能有关。 举例来说,如果你的 Proxy 并没有提供邮件或 FTP 代理,那么你的客户端就是无法透过 Proxy 去取得这些网络资源。 主要运作的行为在 OSI 七层协议的应用层部分(所谓的比较“高阶”之意)
- 作为 WWW 的网页资料取得代理人:这是最主要的功能。
- 作为内部区网的单点对外防火墙系统:
- 如果你的Proxy 是放在内部区网的 Gateway 上头,那么这部代理服务器就能够作为内部计算机的防火墙
- 节省单点对外的网络带宽,降低网络负载:
- 当你的 Proxy 用户很多时,那么 Proxy 内部的快取数据将会累积较多。因此客户端想要取得网络上的数据时,很多将会从 Proxy 的快取中取得,而不用向因特网要求资料。 所以可以节省带宽啊!
- 以较短的路径取得网络数据,有网络加速的感觉:
- 例如你可以指定你的 ISP提供的代理服务器连接到国外,由于 ISP 提供的 Proxy 通常具有较大的对外带宽,因此在对国外网站的数据取得上, 通常会比你自己的主机联机到国外要快的多。此外,与上一点的快取数据也有关系啊!从内部硬盘取得的路径总比对外的因特网要短的多啊!
- 透过上层代理服务器的辅助,达到自动数据分流的效果:
- 例如图 17.1-4 所示,让客户端在不知不觉之间,就可以得到数据由不同 Proxy 取得的加速效果!
- 提供防火墙内部的计算机连上 Internet:就是上面提到的单点对外防火墙功能
- 容易被内部区网的人员滥用:
- 我们知道因特网上看到取得数据的人是 Proxy那部主机而不是客户端计算机的 IP,因此可能会让某些内部网络使用人员开始利用你的 proxy 干坏事,此时你就会很麻烦~ 所以,为了杜绝这个状况,强烈的建议多加登录档案分析的软件,在管理上面会轻松很多!
- 需要较高超的设定技巧与除错程序:
- 在设定服务器当中, Proxy 算是比较不容易设定好『效能』的一个服务器了!由于 Proxy 的 Cache 与他的『上层代理服务器』的关系是很紧密的, 万一设定错误的话,很有可能反而让你的Proxy 拖垮客户端 WWW 的浏览速度!最严重的是造成无法联机!
- 可能会取得旧的错误数据:
- 这个最容易发生了!由于曾经浏览过的网页会被放置到快取, 并提供后续用户的直接取得。 万一因特网上面的那个网页数据更新过呢?那时你会发现,怎么客户端无法看到更新后的资料? 就是因为快取的问题。
- 我的 Client 端用户不少,而且大部分仅需要 WWW 这个网络服务而已;
- 我的 Proxy 还兼做防火墙的任务;
- 我的 Client 端常常需要联机到传输速度很慢的网站,例如国外的网站;
- 我的 Client 端常常浏览的网站是『静态』网站,而不是动态网站 (例如讨论区的 PHP)。
代理服务器(Proxy)原理的更多相关文章
- Linux下常用程序的代理服务器(proxy)配置
Linux下有很多程序都只有命令行接口,对于这类程序,它们通过代理服务器(proxy)访问网络的方式也不尽相同.在本文中Easwy总结了一些常用Linux程序配置代理服务器的方法. [ 通用代理服务器 ...
- Linux下代理服务器(proxy)配置
Linux下有很多程序都只有命令行接口,对于这类程序,它们通过代理服务器(proxy)访问网络的方式也不尽相同.在本文中Easwy总结了一些常用Linux程序配置代理服务器的方法. [ 通用代理服务器 ...
- Linux——下常用程序的代理服务器(proxy)配置
Linux下有很多程序都只有命令行接口,对于这类程序,它们通过代理服务器(proxy)访问网络的方式也不尽相同.在本文中Easwy总结了一些常用Linux程序配置代理服务器的方法. [ 通用代理服务器 ...
- 【转载】http proxy原理
最近使用Charles抓https包时,发现get和post方式的请求都能抓到,但是method为connect的就是抓不到.而且提示如下: You may need to configure you ...
- JDK动态proxy原理解析
转: 之前虽然会用JDK的动态代理,但是有些问题却一直没有搞明白.比如说:InvocationHandler的invoke方法是由谁来调用的,代理对象是怎么生成的,直到前几个星期才把这些问题全部搞明白 ...
- 转:Jmeter 用户思考时间(User think time),定时器,和代理服务器(proxy server)
在负载测试中需要考虑的的一个重要要素是思考时间(think time), 也就是在两次成功的访问请求之间的暂停时间. 有多种情形挥发导致延迟的发生: 用户需要时间阅读文字内容,或者填表,或者查找正确的 ...
- 【Go】Golang实现gRPC的Proxy的原理
背景 gRPC是Google开始的一个RPC服务框架, 是英文全名为Google Remote Procedure Call的简称. 广泛的应用在有RPC场景的业务系统中,一些架构中将gRPC请求都经 ...
- NAT技术与代理服务器
1.什么是NAT技术? NAT(network address Translation):网络地址转换 使用端口号的NAT:网络地址与端口号转换 2.理解下图就可以完全知道NAT技术的原理: 3.什么 ...
- Python之路——堡垒机原理及其简单实现
1 堡垒机基本概述 其从功能上讲,它综合了核心系统运维和安全审计管控两大主干功能,从技术实现上讲,通过切断终端计算机对网络和服务器资源的直接访问,而采用协议代理的方式,接管了终端计算机对网络和服务器的 ...
- 用nodejs搭建代理服务器
题图 From 极客时间 From Clm 前端开发者在工作中常常遇到跨域的问题,一般我们遇到跨域问题主要使用以下办法来解决: 1.jsonp 2.cors 3.配置代理服务器. jsonp不是很灵活 ...
随机推荐
- E 最熟悉的陌生人 (纪念当年就读的梅州市江南高级中学)
最熟悉的陌生人 作者:张慧桥 枪与玫瑰” 负责审讯的兄弟真是好样的,回来后的第四天上午就让黄志深那小子招了出来. 这可真的不容易! 现在公安部对我们审讯工作有很多的规定,其中一条就是不准刑讯逼供,就是 ...
- 《舌尖上的中国》第二季今日首播了,天猫食品也跟着首发,借力使力[bubuko.com]
天猫旗下的天猫食品与央视CCTV-1栏目<舌尖上的中国>第二季(以下简称“舌尖2”)达成合作,天猫食品成为舌尖2独家合作平台,同步首发每期 节目中的食材和美食菜谱,舌尖2摄制组还将为同步上 ...
- pt-online-schema-change 修改主键导致数据删除失败的问题调查
pt-online-schema-change在线DDL工具可以做到DDL操作不锁表,不影响线上操作.对于线上超过100W的大表,一般情况下都用这个工具做DDL,最重要的考虑点还是“不影响线上操作” ...
- 【转载】Keil中的USE MicroLib说明
在keil建立ARM的工程时 其中有一项是选 use MicroLIB 由于对KEIL不是很熟悉,于是就查了查,得到了以下信息: microlib 是缺省 C 库的备选库. 它旨在与需要装入到极少量内 ...
- 用SysTick做的延时计时器
CM3.CM4的内核中都有个24位的SysTick定时器.这两个MCU里边的SysTick大同小异.SysTick的介绍可以参考:(来自CSDN博客的参考)或者(来自百度文库的参考)或者参考<C ...
- ARM指令分类及其寻址方式
ARM指令分类及其寻址方式 一:ARM指令的分类 ARM指令集可以分为以下6类: •跳转指令: •数据处理指令: •程序状态寄存器(PSR)传输指令: •load/store指令: •协处理器指令: ...
- APP常见崩溃原因和测试方法整理
测试过APP的人都应该发现,app崩溃是一类非常常见的问题,很多时候还是致命性的,这就要求我们测试人员要尽最大可能去找出软件当中的缺陷,减少app崩溃出现的概率,这里我将收集到的关于针对APP崩溃测试 ...
- OAF_开发系列17_实现OAF数组应用Vector / Hashmap / Hashtable / Arraylist(案例)
20150506 Created By BaoXinjian
- SearchBar 修改 cancel button 文字 及颜色
#pragma mark - - (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar{ _searchController.searchB ...
- oracle kill session
kill session 是DBA经常碰到的事情之一.如果kill 掉了不该kill 的session,则具有破坏性,因此尽可能的避免这样的错误发生.同时也应当注意,如果kill 的session属于 ...