客户端-服务器模型

多种客户端与中央服务器双向通信模型图

在互联网诞生之初,计算机大多是孤立运行的,只处理本地的程序与文件。随后,为了实现信息交换与资源共享,专门分工的“客户端-服务器模型”应运而生,并逐渐演变为现代互联网的骨架。

客户端与服务器工作原理

客户端与服务器的分工与合作,非常类似于用手机点外卖:

  • 客户端:扮演“发起请求”的顾客。它总是主动出击,向外发送数据请求。例如你的浏览器、手机 App 或是终端里的命令行工具。你以后在进行渗透测试时,使用的各种命令行工具就是你的客户端。
  • 服务器:扮演“响应请求”的商户。它静静地在网络上等待,一旦收到客户端的请求,就处理并返回对应的资源。你以后要攻击的目标,通常就是服务器。
  • 请求与响应:客户端发送“我要买一杯奶茶”的请求,服务器验证订单后,回传“这是你的奶茶”作为响应。如果你的请求格式写错了,或者商户已经打烊,你就会收到一个错误回显。

在网络世界中,客户端总是主动发起连接的一方,而服务器永远是被动倾听并响应的一方。

通信语言:网络协议

要让两个独立的实体无障碍交流,必须有一套统一的标准,这就是协议。网络协议定义了双方都能理解的命令、请求应该如何构建、语法结构怎样,以及面对不同请求和错误时应该给出什么回复。

例如,当你浏览网页时,浏览器与 Web 服务器之间使用的是超文本传输协议(HTTP)或其加密版本超文本传输安全协议(HTTPS)

HTTP 是一种无状态协议,这意味着它的每次请求都是完全独立的,服务器不会保留之前请求的历史记录。但在实际使用中,我们登录网站后并不需要每次点击都重新输入密码。这是因为现代 Web 应用利用会话与凭证(Cookie/Token)等机制在应用层建立起“状态记忆”。

关于 HTTP 协议的详细交互命令和数据包结构,我们将在后续的《网站怎么跑》模块中进行专门拆解。

客户端与服务器角色判定

练习

在客户端-服务器模型中,负责主动发起网络连接和请求的这一方角色通常被称为: A. 客户端(Client) B. 服务器(Server) 请提交正确选项的字母(例如 A)。

提交答案

题解 Hint