客户端-服务器架构模式
  客户服务器模式(Client–server model)简称C/S结构,是⼀种⽹络架构,它把客户端 (Client) 与服务器 (Server) 区分开来。每⼀个客户端软件的实例都可以向⼀个服务器或应⽤程序服务器发出请求。客户服务器模式通过不同的途径应⽤于很多不同类型的应⽤程序,最常见就是⽬前在因特⽹上⽤的⽹页。例如,当你在阅读⽂章时,你的电脑和⽹页浏览器就被当做⼀个客户端,同时,组成的电脑、数据库和应⽤程序就被当做服务器。当你的⽹页浏览器向请求⼀个指定的⽂章时,服务器从的数据库中出所有该⽂章需要的信息,结合成⼀个⽹页,再发送回你的浏览器。C/S模式是⼀个逻辑概念,⽽不是指计算机设备。在C/S模式中,请求⼀⽅为客户,响应请求⼀⽅称为服务器,如果⼀个服务器在响应客户请求时不能单独完成任务,还可能向其他服务器发出请求,这时,发出请求的服务器就成为另⼀个服务器的客户。从双⽅建⽴联系的⽅式来看,主动启动通信的应⽤叫客户,被动等待通信的应⽤叫服务器。 
两层和三层架构:
有两种类型的客户端服务器架构:
两层构架: 在这种架构中,客户端直接与服务器进⾏交互。这种类型的架构可能有⼀些安全漏洞和性能问题。 IE浏览器和Web服务器的两层架构。这⾥的安全问题都解决了使⽤安全套接字层(SSL)。
三层架构:在这个架构中,多了⼀个软件位于客户端和服务器之间。这中间的软件被称为中间件。中间件被⽤来执⾏所有的安全检查和重负载情况下的负载平衡。中间件需要从客户端的所有请求,并做必要的验证后,通过向服务器发出请求。然后,服务器没有所需的处理和发送响应回中间件,中间件终于通过这个响应返回给客户端。如果想实现⼀个3层架构,那么可以使⽤如Web Logic或
WebSphere软件在Web服务器和Web浏览器之间的任何中间件。
服务器类型:
在两种类型的服务器上,可以有:
迭代服务器: 这是最简单形式的服务器的服务进程的客户端和第⼀个请求,然后完成后,需要从其他客户机的请求。同时,另⼀个客户端⼀直等待。
web服务器又被称为
并发服务器:这种类型的服务器运⾏多个进程并发服务请求⼀次。因为⼀个进程可能需要更长的时间,但其他客户机⼜不能等太久。
Unix下写⼀个并发服务器的最简单的⽅法是fork⼀个⼦进程来分开处理每个客户端。
创建客户端:
系统调⽤有所不同的客户端和服务器建⽴连接,但两者套接字涉及的基本构造。这两个过程分别建⽴⾃⼰的套接字。
在客户端建⽴套接字所涉及的步骤如下:
1. 创建⼀个socket可使⽤socket()的系统调⽤。
2. 套接字连接的服务器地址使⽤connect()系统调⽤。
3. 发送和接收数据。做到这⼀点的⽅法有许多,但最简单的⽅法是使⽤read()和write()。
创建服务器:
在服务器端建⽴套接字所涉及的步骤如下:
1. 创建⼀个socket可使⽤socket()的系统调⽤。
2. 使⽤bind()系统调⽤套接字绑定到⼀个地址。对于互联⽹上的服务器套接字,地址包括主机的端⼝号。
3. 连接监听listen()系统调⽤。
4. 接受连接使⽤accept()系统调⽤。此调⽤通常会阻塞,直到客户端与服务器连接。
5. 发送和接收数据read()和write()系统调⽤。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。