简介
HTTP通信时,除客户端和服务器以外,还有一些用于通信数据转发的应用程序,例如代理、网关和隧道,它们可以配合服务器工作。
这些服务器和应用程序可以将请求转发给通信线路上的下一站服务器,并且能接收从那台服务器发送的响应,再转发给客户端。
1.代理
代理是一种有转发功能的应用程序,它扮演了客户端和服务器之间的‘中间人’角色,接收由客户端发送的请求再转发给服务器,同时也接收服务器返回的响应并转发给客户端。
2.网关
网关是转发其它服务器通信数据的服务器,接收从客户端发送的请求时,它就像自己拥有资源的源服务器一样,对客户端请求进行处理。有时客户端可能都不会察觉,自己的通信目标是一个网关。
3.隧道
隧道是在相隔甚远的客户端和服务器之间进行中转,并保持双方通信连接的应用程序。
2.1代理服务器
具体而言,代理服务器可以分为正向代理和反向代理服务器。
2.1.1正向代理
正向代理.png正向代理:客户端向源服务器发送请求时,请求会先发送到代理服务器,代理服务器转发请求给服务器,并将从服务器返回的响应发回给客户端。
在正向代理的过程中,隐藏了真实的客户端,即服务器端不知道客户端是谁。某些科学上网工具扮演的就是正向代理服务器:比如用浏览器访问:"http://www.google.com"时被限制访问,你就可以在国外搭建一台代理服务器,通过这台代理服务器去请求www.google.com,代理服务器再把返回的响应内容返回给你。
2.1.2反向代理
反向代理.png反向代理:一般是从服务端设置,客户端向反向代理发出请求,反向代理收到请求后,需判断向哪台服务器请求资源,然后再将结果返回给客户端。
反向代理过程中隐藏了真实服务器的信息,用户不需要知道是哪台服务器返回的信息,只要知道反向代理服务器是谁就行了。比如:用上文在国外搭建的代理服务器A访问:http://www.google.com,这里的A就相当于是一个客户端,www.google.com就是我们的反向代理服务器,反向代理服务器会把我们的请求转发给真实服务器,由真实服务器处理请求并返回资源到反向代理服务器,反向代理服务器再把资源转发给A。所以在整个过程中A并不知道是哪台服务器处理了请求,这样就很好的隐藏了真实服务器。
使用代理服务器理由
利用缓存技术减少网络宽带流量,组织内部对特定网站的访问控制,获取访问日志,网站负载均衡等。
网友评论