← 返回 oixcloud.shop 本地视觉备份 首页

Client Server 是什么?客户端与服务端如何工作

更新于 2026-10-30 · oixcloud.shop

简答:Client Server(客户端—服务端)是一种网络协作模型:客户端发起请求,服务端处理请求并返回结果。浏览器访问网站时,通常会经历域名解析、建立连接、发送 HTTP 请求、服务端处理和返回响应。遇到连接失败,先按“客户端—网络—服务端”三段定位,而不是只看某一个软件。

定义:Client Server 是一种让客户端程序通过网络向服务端程序请求资源或服务,再由服务端处理并返回响应的通信模型。

先看结论:客户端、服务端和网络分别做什么

在 Client Server 模型中,client 和 server 首先是通信角色,不一定代表两台固定的物理设备。同一台计算机可以在一次连接中作为客户端,在另一次连接中作为服务端;一个服务端也可能继续向数据库服务、认证服务或其他 API 服务发起请求。HTTP 标准明确将客户端定义为建立连接并发送请求的程序,将服务端定义为接受连接并返回响应的程序。RFC 9110

组成主要职责常见例子
客户端发起请求、展示结果、保存部分本地状态浏览器、手机应用、桌面客户端、命令行工具
服务端监听请求、执行业务逻辑、读取或写入数据、返回结果Web 服务、API 服务、数据库服务、文件服务
网络负责寻址、传输和连接建立DNS、IP、TCP、路由器、代理、负载均衡
协议规定双方如何表达请求、响应、状态和错误HTTP/HTTPS、DNS、TCP、TLS

因此,“客户端能打开软件”不等于“已经连接到服务端”。客户端还需要解析到正确地址,经过网络到达目标端口,并完成协议层面的交互。

一次浏览器访问网站,Client Server 发生了什么

  1. 输入域名:浏览器先根据域名寻找目标地址。DNS 负责把域名映射到可连接的网络地址;如果解析结果错误、过期或被本地网络拦截,请求可能还没有到达服务端。
  2. 建立连接:客户端向目标地址发起传输层连接。传统 HTTP 通常建立 TCP 连接;如果使用 HTTPS,还需要在 HTTP 数据交换前完成 TLS 安全连接。MDN HTTP Overview
  3. 发送请求:客户端发送请求方法、目标路径、请求头和可选请求内容。例如读取页面通常使用 GET,提交数据可能使用 POST。HTTP 将通信拆成客户端请求与服务端响应两类消息。RFC 9110
  4. 服务端处理:服务端检查请求是否有效、用户是否有权限,然后可能调用应用逻辑、缓存、数据库或其他服务。
  5. 返回响应:服务端返回状态码、响应头和内容。2xx 通常表示成功,4xx 表示请求或权限一侧存在问题,5xx 表示服务端处理失败。状态码只能说明响应结果,不能单独证明整个业务已经正常完成。
  6. 客户端渲染或继续请求:浏览器收到 HTML 后,通常还会继续请求 CSS、JavaScript、图片或接口数据;所以“首页能打开”不一定等于所有资源和接口都正常。

可把链路简化为:客户端 → DNS → 网络连接 → TLS(HTTPS)→ HTTP 请求 → 服务端应用 → 数据库或其他服务 → HTTP 响应 → 客户端展示。中间任一环节都可能造成超时、拒绝、空白页面或部分功能不可用。

Client Server 的常见应用场景

这些场景的共同点不是“必须使用某种设备”,而是存在明确的请求方、服务提供方和双方认可的通信协议。

两层、三层和 N 层架构怎么区分

架构基本关系适合场景主要注意点
两层客户端直接访问服务端或数据库内部工具、小型局域网应用、简单管理系统客户端与数据层耦合较紧,权限和扩展需要谨慎处理
三层客户端、应用服务、数据服务分离多数企业 Web 应用、API 服务和办公系统边界更清楚,便于统一认证、权限控制和版本发布
N 层在应用前后增加缓存、代理、队列、搜索、对象存储或多个服务访问量较大、业务复杂、需要独立扩展的系统链路更长,排障需要记录每一层的请求、延迟和错误

选型时不要只问“服务器配置够不够”,还要确认客户端数量、并发请求、数据访问方式、跨地域延迟、带宽、故障恢复和权限边界。小型应用不一定需要复杂的 N 层架构;但当数据库不能直接暴露给客户端、不同模块需要独立扩展,或必须集中处理认证和审计时,增加应用层通常更容易维护。

Client Server 与 P2P、Serverless 有什么不同

模型请求关系优势限制
Client Server客户端主要请求集中式服务端便于统一管理、认证、数据存储和权限服务端过载、网络中断或单点故障会影响客户端
P2P节点之间可以直接互相提供和请求资源资源和负载可分散,部分场景不依赖单一中心节点发现、信任、权限和一致性更复杂
Serverless客户端调用由平台托管的函数或服务减少自行维护服务器的工作,按服务拆分逻辑仍然存在服务端能力,只是基础设施由平台管理,需关注调用限制和平台依赖

Serverless 不是“没有服务端”,而是开发者通常不直接管理传统意义上的服务器进程。对使用者而言,仍然是客户端发起调用,平台服务处理请求并返回响应。

连接失败时,按三段法定位 Client Server 问题

  1. 先查客户端:确认应用或浏览器使用的地址、端口、协议和账户配置是否正确。Windows 可先运行 nslookup example.com 检查解析;macOS 或 Linux 也可使用相同命令。若命令本身不可用,先安装或启用系统 DNS 查询工具,不要直接修改配置文件。
  2. 再查网络:如果域名无法解析,问题更接近 DNS;如果能解析但连接超时,可进一步区分本地网络、路由、丢包、MTU、代理或防火墙。Windows 可使用 tracert example.com,macOS/Linux 可使用 traceroute example.com 查看路径变化。路径中的某一跳不响应并不必然表示终点故障,因为部分设备会限制探测报文。
  3. 最后查服务端:如果能建立连接但返回 401、403、404 或 5xx,应保存完整状态码、响应时间和请求路径,再由服务端检查认证、权限、路由、应用日志和依赖服务。不要把所有 HTTP 错误都归因于网络。
  4. 用最小测试复现:在不泄露密码、令牌和隐私数据的前提下,可使用 curl -I https://example.com/ 获取响应头。若 HTTPS 证书、域名或代理配置有问题,命令通常会给出比浏览器页面更明确的错误提示。

回退原则是:每次只改一个变量,记录修改前后的结果;如果更改 DNS、代理、MTU 或客户端配置后问题扩大,恢复原配置,再从最近一次可复现的状态继续定位。

如何判断一套 Client Server 架构是否适合自己

如果你的主要问题是跨地域办公客户端访问服务端时延迟高、偶发丢包或连接不稳定,应先用实际路径和分平台测试确认问题位于客户端、网络还是服务端,再决定是否调整网络方案。

常见问题

Client 和 Server 一定是两台电脑吗?

不一定。它们描述的是某次通信中的角色。同一台电脑可以运行客户端程序和服务端程序;一个应用服务也可能同时接受浏览器请求,并向数据库服务发起请求。

客户端能解析域名,但为什么仍然连不上服务端?

DNS 解析只说明域名获得了地址,不代表目标端口可达,也不代表 TLS、认证和应用逻辑正常。应继续检查连接建立、端口、代理、防火墙、证书和服务端状态。

收到 404 是客户端问题还是服务端问题?

通常表示服务端或中间应用没有找到请求的资源,但具体原因要结合请求路径、Host、路由配置和版本判断。先确认客户端请求的 URL、方法和协议,再查看服务端路由日志。

HTTPS 比 HTTP 多了什么?

HTTPS 在 HTTP 通信前建立受保护的 TLS 连接,用于验证服务端身份并提供机密性和完整性保护;但 HTTPS 本身不保证应用权限配置正确,也不能消除所有网络故障。RFC 9110 对 HTTPS 的定义

为什么首页能打开,但登录或接口功能失败?

网页首页可能只是一次成功的静态请求,登录、图片、脚本和 API 往往是后续独立请求。应在浏览器开发者工具中分别查看失败请求的域名、状态码、耗时和响应内容,避免只根据首页结果判断整个系统。

常见问题

Client Server 是什么意思?

它指客户端与服务端通过网络和协议协作的模型:客户端发起请求,服务端处理请求并返回响应。

客户端和服务端有什么区别?

客户端通常主动发起连接并展示或使用结果;服务端负责监听请求、执行处理、访问数据并返回响应,但两者是角色而不一定是不同设备。

Client Server 连接失败应该先查哪里?

按客户端、网络、服务端三段检查:先确认地址和配置,再检查 DNS、端口、延迟和丢包,最后根据 HTTP 状态码和服务端日志定位。

Client Server 和 P2P 有什么区别?

Client Server 以集中式服务端提供资源和业务,便于统一管理;P2P 让节点之间直接提供和请求资源,分布性更强但权限、一致性和发现机制更复杂。

相关阅读

参考资料

  1. RFC 9110:HTTP Semantics
  2. MDN:Overview of HTTP
  3. Microchip:Introduction to TCP/IP,Client Server Model
  4. MDN:Client-server overview