在本课中,我们将了解客户端和服务器之间的关系。客户端/服务器架构提供了无限数量的通信可能性,正是它使互联网成为可能。我们将介绍对客户端/服务器模型的基本了解,稍后将使用该模型来调用 API。涵盖客户端/服务器架构的详尽资源超出了本课程的范围,相反,我们将重点关注客户端/服务器通信的主要原则。
您将能够:
通信技术的客户端服务器模型是一组分布式应用程序体系结构和网络操作,用于管理服务提供者(称为服务器)和服务请求者(称为客户端)之间的工作负载。
尽管客户端服务器模型可以由单个计算机内的程序使用,但我们将重点关注处理网络环境的方面。在这种情况下,客户端通过局域网(LAN)、广域网(WAN)(例如互联网)建立与服务器的连接。您玩过 Xbox Live 或使用过 PlayStation Network 吗?您的 Xbox One 是客户端,当它登录到网络时,它会联系 Xbox Live 服务器以检索更新、视频和游戏演示等游戏资源。
我们大多数人在日常生活中使用的典型的多层客户端服务器架构如下所示。
客户端是请求服务器提供的服务的计算机硬件设备或软件。服务器通常(但并非总是)位于单独的物理计算机上。
服务器是专门运行服务以满足客户端需求的物理计算机。根据正在运行的服务,它可以是文件服务器、数据库服务器、家庭媒体服务器、打印服务器、电子邮件服务器或Web 服务器。
客户端和服务器通过网络进行通信的理念使得查看网站和与 Web 应用程序(如 Gmail、Facebook、LinkedIn)交互成为可能。该模型是一种描述 Web 应用程序中客户端和服务器之间的给予和接受关系的方法,并控制信息如何在计算机之间传递。
让我们看看一个基本的 Web 应用程序是什么样子的,它接收来自 Web 客户端的请求并提供相应的服务。
Web应用程序(Web应用程序)是存储在远程服务器上并通过浏览器界面通过Internet交付的应用程序。根据定义,Web 服务是 Web 应用程序,许多(尽管不是全部)网站都包含 Web 应用程序。任何为用户执行某些功能的网站组件都可以称为 Web 应用程序。谷歌的搜索引擎是一个网络应用程序,但其根本概念与允许您搜索姓名或号码的电话簿几乎没有什么不同。
大多数网络应用程序实际上使用浏览器界面进行交互,即最终用户通过现代网络浏览器界面请求访问并从这些应用程序请求信息/服务。构建和配置 Web 应用程序的方法有数百种,但大多数都遵循相同的基本结构:Web 客户端、Web 服务器和数据库。
客户端是最终用户与之交互的对象。 “客户端”代码实际上负责用户实际看到的大部分内容。对于以网页形式请求某些信息,客户端可能负责: 包括:
大多数这些任务由类似 HTML/CSS/JavaScript 的技术来管理,以构建信息、页面样式并提供用于导航和焦点的交互式对象。
Web 应用程序中的 Web 服务器负责侦听来自客户端的请求。当您设置 HTTP(超文本传输协议 - 互联网语言)服务器时,我们将其设置为侦听端口号。端口号始终与计算机的 IP 地址相关联。您可以将端口视为计算机上的单独通道,我们可以使用它们来执行不同的任务:一个端口可以浏览 www.facebook.com,而另一个端口可以获取您的电子邮件。这是可能的,因为每个应用程序(Web 浏览器和电子邮件客户端)使用不同的端口号。
一旦您设置了 HTTP 服务器来侦听特定端口,该服务器就会等待到达该特定端口的客户端请求。对客户端进行身份验证后,服务器将执行请求指定的任何操作,并通过 HTTP 响应发送任何请求的数据。
数据库是 Web 体系结构的基础。 SQL/NoSQL 或类似类型的数据库是存储信息的地方,以便可以轻松访问、管理和更新信息。例如,如果您正在构建一个社交媒体网站,您可能会使用数据库来存储有关用户、帖子、评论等的信息。当访问者请求页面时,插入到页面中的数据来自网站的数据库,允许用户与 Facebook 等网站或 Gmail 等应用程序进行实时交互。
在上面的示例图中,我们可以看到上述设置的实际效果。浏览器通过调用其域(即 www.google.com)向网络服务器发送请求。根据请求者是谁,服务器收集 SQL 数据库的必要信息。该信息被包装为 HTML 代码并发送回客户端。 Web 浏览器读取嵌入 HTML 中的结构和样式信息,并相应地向用户显示页面。
有很多关于客户端/服务器体系结构以及它们如何在 Internet 上表现的详细信息。我们将通过设置客户端并在 Python 中发出请求来更多地关注本节中强调的想法。这些技能将帮助我们从服务器请求数据以进行分析实验。如果您想深入了解客户端服务器模型以及如何为许多不同的体系结构设置它,这里有一些额外的资源可供您使用。
在本课程中,我们了解了客户端服务器模型的基础知识,并重点介绍了如何为基于 Web 的应用程序实现该模型。我们研究了 Web 客户端、Web 服务器和承载客户端信息的数据库的作用。在接下来的课程中,我们将了解如何使用 Python 实现这些想法!