1.代理( Proxy )
代理是一个中间程序,它既担当客户端的角色也担当服务器的角色。代理代表客户端向服务器发送请求。
客户端的请求经过代理,会在代理内部得到服务或者经过一定的转换转至其他服务器。
一个代理必须能同时实现本规范中对客户端和服务器所作的要求。
透明代理(transparent proxy)需要代理授权和代理识别,但不修改请求或响应。
非透明代理(non-transparent proxy)需修改请求或响应,以便为用户代理(user agent)提供附加服务,
附加服务包括组注释服务,媒体类型转换,协议简化,或者匿名过滤等。除非透明行为或非透明行为经明确指出,
否则,HTTP代理既是透明代理也是非透明代理。
2.缓存( cache)
缓存是程序响应消息的本地存储。缓存是一个子系统,控制消息的存储、取回和删除。
缓存里存放可缓存响应(cacheable response)为的是减少对将来同样请求的响应时间和网络带宽消耗。
任一客户端或服务器都可能含有缓存,但高速缓存不能被一个充当隧道(tunnel)的服务器使用。
3.网关( gateway )
网关其实是一个服务器,扮演着代表其它服务器为客户端提供服务的中间者。与代理(proxy)不同,
网关接收请求,仿佛它就是请求资源的源服务器。请求的客户端可能觉察不到它正在同网关通信。
4.隧道( tunnel )
隧道也是一个中间程序,它一个在两个连接之间充当盲目中继(blind relay)的中间程序。
一旦隧道处于活动状态,它不能被认为是这次HTTP通信的参与者,虽然HTTP请求可能已经把它初始化了。
当两端的中继连接都关闭的时候,隧道不再存在。
5.Agent 代理
初始化请求的客户端程序。常见的如浏览器,编辑器,蜘蛛(网络穿越机器人),或其他的终端用户工具.
http://www.cnblogs.com/hackpig/archive/2010/02/14/1668282.html