网络应用随处可见,任何时候浏览Web、发送E-mail信息或玩在线游戏,都会使用网络应用程序。有趣的是,所有的网络应用都是基于相同的基本编程模型,有着相似的整体逻辑结构,并且依赖相同的编程接口。
每个网络应用都是基于 客户端-服务器 模型的。采用这个模型,一个应用是由一个服务器进程 和 一个或多个客户端进程组成。服务器管理某种资源,并且通过操作这种资源来为它的客户端提供某种服务。
如一个Web服务器管理者一组磁盘文件,它会代表客户端进行存储和检索。相似地,一个电子邮件服务器管理着一些文件,它为客户端进行读和更新。
客户端-服务器模型中的基本操作是事务(transaction),一个客户端-服务器事务由以下四步组成:
- 当一个客户端需要服务时,它向服务器发送一个请求,发起一个事务。如当Web浏览器需要一个文件时,它就发送一个请求给Web服务器;
- 服务器收到请求后,解释它,并以适当的方式操作它的资源。如当Web服务器收到浏览器发出的请求后,它就读一个磁盘文件;
- 服务器给客户端发送一个响应,并等待下一个请求。如Web服务器将文件发送回客户端;
- 客户端收到响应并处理它。如当Web浏览器收到来自服务器的一页后,就在屏幕上显示此页。
需要注意的是,客户端和服务器是进程,而不是常提到的机器或主机。一台主机可以同时运行多个不同的客户端和服务器,而且一个客户端和服务器的事务可以在同一台或不同的主机上。无论客户端和服务器是怎样映射到主机上的,客户端-服务器模型都是相同的。