周六早上,一位朋友拉着我,和我争论了将近两个小时的正向代理和反向代理,最终决定把结果做个简单的记录。
代理服务器分为正向代理
和反向代理
两种,下面通过两张图来说明一下正向代理和反向代理:
正向代理:
当客户端向服务端发送请求时,由于无法直接请求到服务端,需要通过一个代理来访问服务端,这个代理就叫正向代理,此时的代理是为客户端工作的,客户端会把自己要做的事委托给代理去做,而对于服务端来说,它并不知道真正请求的客户端是谁,客户端对于服务端而言是透明的,它只知道代理服务器的存在。
反向代理:
还有一种代理被称为反向代理
,当服务端不止一个请求地址时,为了对外暴露一个统一的访问地址,需要一个代理服务器,将代理服务器的访问地址暴露出来,代理服务器收到客户端请求时,会根据服务端的情况,将请求转发到可达的服务端,而对于客户端而言,只知道代理服务器的入口,并不知道实际服务端的访问地址,此时,服务端对于客户端而言是透明的。
两者的区别在于代理的对象不一样:正向代理代理的对象是客户端,反向代理代理的对象是服务端。
知乎有篇文章介绍了反向代理和正向代理的概念,个人感觉还是可以的,文章链接:反向代理为何叫反向代理