初探计算机网络代理
TL;DR: 这篇文章介绍了计算机网络代理的简述,类型和使用场景。详解了正向代理, 反向代理的实现原理。最后介绍正向代理和反向代理的各种产品。
前段时间,由于项目需要在复杂的网络环境中运行,所以对计算机网络中的代理内容进行整理,以方便在团队内进行技术分享。分享是基于实际业务场景一层一层推演开来,所以不方便在外网直接引用,这里就采用课本常见的自上而下的介绍方式。
什么是计算机网络代理
维基百科中对计算机网络代理的定义是:
In computer networking, a proxy server is a server application that acts as an intermediary between a client requesting a resource and the server providing that resource.
也就是计算机网络代理服务器 横亘在客户端与服务资源中间的一个服务, 该服务作为一个中介的形态,接收来自左手客户端的请求,然后向右边发起请求,最后将右边返回的内容转述给左边的客户端。下图简要地描述了以上的定义:
代理的类型有哪些
网络代理从面向的角度看看,可以分为两种代理: 正向代理和反向代理。
正向代理
正向代理是一个从内部向外部的更多资源获取数据的,面向互联网的代理服务。比如你想到谷歌上搜索一些技术问题,在目前的大多数网络中是无法直接打开谷歌的,于是需要一个代理帮你从现有的网络环境桥接到谷歌的网络,这个就是正向代理所做的事情。维基百科的下图描述了这一过程:
反向代理
反向代理是指内部网络提供一个服务,用来对接互联网发来的连接请求,以达到控制和保护在内部网络中服务的目的。前面由内而外的称为正向代理,那么这种由外而内的也就称为了 反向代理。比如公司提供API服务的内部服务器有几