《图解HTTP》读书笔记(七:通信数据转发程序-代理/网关/隧道)

时间:2024-07-10 00:03:08

HTTP通信时,除客户端和服务器以外,还有一些用于通信数据转发的应用程序,例如代理、网关和隧道,它们可以配合服务器工作。这些服务器和应用程序可以将请求转发给通信线路上的下一站服务器,并且能接收从那台服务器发送的响应,再转发给客户端。

1.代理

  代理是一种有转发功能的应用程序,它扮演了客户端和服务器之间的‘中间人’角色,接收由客户端发送的请求再转发给服务器,同时也接收服务器返回的响应并转发给客户端。

代理服务器工作流程

  • 当客户端A对web服务器请求时,此端提出请求时,此请求会首先发送到代理服务器.
  • 代理服务器接收到客户端请求后,会检查缓存中是否存有客户端所需要的数据.
  • 如果代理服务器没有客户端A所请求的数据,它将会向WEB器提交请求.
  • WEB服务器响应请求的数据.
  • 代理服务器向客户端A转发Web服务器的数据.
  • 客户端B访问web服务器,向代理服务器发出请求.
  • 代理服务器查找缓存记录,确认已经存在WEB服务器的相关数据.
  • 代理服务器直接回应查询的信息,而不需要再去服务器进行查询,从而达到节约网络流量和提高访问的速度目的.

更详细的介绍:http://www.cnblogs.com/TankXiao/archive/2012/12/12/2794160.html

2.网关

  网关是转发其它服务器通信数据的服务器,接收从客户端发送的请求时,它就像自己拥有资源的源服务器一样,对客户端请求进行处理。有时客户端可能都不会察觉,自己的通信目标是一个网关。

《图解HTTP》读书笔记(七:通信数据转发程序-代理/网关/隧道)

网关的工作机制和代理十分相似。而网关能使通信线路上的服务器提供非HTTP协议服务。

利用网关能提高通信的安全性, 因为可以在客户端与网关之间的通信线路上加密以确保连接的安全。 

3.隧道

  隧道是在相隔甚远的客户端和服务器之间进行中转,并保持双方通信连接的应用程序。

《图解HTTP》读书笔记(七:通信数据转发程序-代理/网关/隧道)

隧道可按要求建立起一条与其他服务器的通信线路, 届时使用 SSL等加密手段进行通信。 隧道的目的是确保客户端能与服务器进行安全的通信