网络知识入门,正向代理与反向代理,透明代理(十六)

目录

 

正向代理:最原始的代理

反向代理服务器:对正向代理的改良

透明代理


正向代理:最原始的代理

 

正向代理服务器,又叫客户端缓存服务器。   

实际上,缓存服务器使用的代理机制最早就是放在客户端一侧的这才是代理的原型,称为正向代理forward proxy)。正向代理刚刚出现的时候,其目的之一就是缓存这个目的和服务器端的缓存服务器相同。不过当时的正向代理还有另外一个目的,那就是用来实现防火墙。防火墙的目的是防止来自互联网的非法入侵,而要达到这个目的最可靠的方法就是阻止互联网和公司内网之间的所有包。不过这样一来,公司员工就无法上外网了,因此还必须想一个办法让必要的包能够通过,这个办法就是利用代理。简单来说代理的原理如图所示它会先接收来自客户端的请求消息,然后再转发到互联网中这样就可以实现只允许通过必要的网络包了。这时如果能够利用代理的缓存那么效果就会更好,因为对于以前访问过的数据可以直接从位于公司内网的代理服务器获得,这比通过低速线路访问互联网要快很多。

 

     此外由于代理在转发过程中可以查看请求的内容所以可以根据内容判断是否允许访问。也就是说,通过代理可以禁止员工访问危险的网站, 或者是与工作内容无关的网站包过滤方式的防火墙只能根据 IP 地址和端口号进行判断,因此无法实现这一目的在使用正向代理时,一般需要在浏览器的设置窗口中的“代理服务器” 一栏中填写正向代理的 IP 地址,浏览器发送请求消息的过程也会发生相应的变化在没有设置正向代理的情况下浏览器会根据网址栏中输入的http://... 字符串判断 Web 服务器的域名并向其发送请求消息当设置了正向代理时,浏览器会忽略网址栏的内容,直接将所有请求发送给正向代理

     请求消息的内容也会有一些不同。没有正向代理时浏览器会从网址中提取出 Web 服务器域名后面的文件名或目录名,然后将其作为请求的URI 进行发送而有正向代理时浏览器会像图这样在请求的 URI 字段中填写完整的 http://... 网址正向代理转发消息的过程也和服务器端的缓存服务器有一些不同,不同点在于对转发目标 Web 服务器的判断上使用正向代理时,URI 部分为 http://... 这样的完整网址,因此可以根据这个网址来转发,不需要像服务器端的缓存服务器一样实现设置好转发目标 Web 服务器,而且可以发给任意Web 服务器而服务器端的缓存服务器只能向事先设置好的目标进行转发,这就是两者不同的地方。

扫描二维码关注公众号,回复: 9146225 查看本文章

 

反向代理服务器:对正向代理的改良

正如前面讲过的使用正向代理需要在浏览器中进行设置这可以说是识别正向代理的一个特征。但是设置浏览器非常麻烦如果设置错误还可能导致浏览器无法正常工作。 需要设置浏览器这一点除了麻烦、容易发生故障之外还有其他一些限制。如果我们想把代理放在服务器端那么服务器不知道谁会来访问,也没办法去设置客户端的浏览器,因此无法采用这种方法来实现于是,我们可以对这种方法进行改良,使得不需要在浏览器中设置代理也可以使用。也就是说,我们可以通过将请求消息中的 URI 中的目录名与 Web 服务器进行关联,使得代理能够转发一般的不包含完整网址的请求消息。我们前面介绍的服务器端的缓存服务器采用的正是这种方式,这种方式称为反向代理reverse proxy)。

 

 

透明代理

缓存服务器判断转发目标的方法还有一种,那就是查看请求消息的包头部。因为包的 IP 头部中包含接收方 IP 地址,只要知道了这个地址,就知道用户要访问哪台服务器了。这种方法称为透明代理(transparent proxy)。这种方法也可以转发一般的请求消息,因此不需要像正向代理一样设置浏览器参数,也不需要在缓存服务器上设置转发目标可以将请求转发给任意 Web 服务器。 透明代理集合了正向代理和反向代理的优点,是一个非常方便的方式,但也需要注意一点,那就是如何才能让请求消息到达透明代理由于透明代理不需要设置在浏览器中,那么浏览器还是照常向 Web 服务器发送请求消息。反向代理采用的是通过 DNS 服务器解析引导的方法但透明代理是不能采用这种方法的,否则透明代理本身就变成了访问目标也就无法通过接收方 IP 地址判断转发目标了这就失去了透明代理的意义

 
      总之 正常情况下, 请求消息是从浏览器直接发送到 Web 服务器 并不会到达透明代理。于是, 我们必须将透明代理放在请求消息从浏览器传输到 Web 服务器的路径中, 当消息经过时进行拦截 可能大家觉得这种方法太粗暴 但只有这样才能让消息到达透明代理, 然后再转发给 Web 服务器 如果请求消息有多条路径可以到达 Web 服务器 那么就必须在这些路径上都放置透明代理, 因此一般是将网络设计成只有一条路可以走的结构 然后在这一条路径上放置透明代理。 连接互联网的接入网就是这样一个关口 因此可以 在接入网的入口处放置反向代理 使用透明代理时 ,用户不会察觉到代理的存在, 也不会注意到 HTTP 消息是如何被转发的 因此大家更倾向于将透明代理说成是缓存
 
发布了209 篇原创文章 · 获赞 85 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/ck784101777/article/details/103977516