客户端和服务器端是什么意思?| 客户端与服务器端

客户端和服务器端描述 Web 应用代码的运行位置。

学习目标

阅读本文后,您将能够:

  • 了解客户端-服务器模型
  • 了解客户端和服务器上发生的进程的类型
  • 探索客户端和服务器与应用程序前端和后端的关系
  • 探索使用无服务器架构如何影响服务器端流程

复制文章链接

什么是客户端和服务器端?

客户端和服务器端是 Web 开发术语,用于描述应用程序代码的运行位置。Web 开发人员还将这种区别称为前端与后端,但客户端/服务器端与前端/后端并不完全相同。在无服务器架构中,无服务器供应商托管资源并将资源分配给所有服务器端进程,而进程会随着应用程序使用率的增加而扩展。

客户端-服务器模型是什么?

互联网的大部分都基于客户端-服务器模型。在此模型中,用户设备通过网络与位于中心的服务器进行通信以获取所需的数据,而不是相互通信。最终用户设备(例如笔记本电脑、智能手机和台式计算机)被视为服务器的“客户端”,就好像它们是从公司获得服务的客户一样。客户端设备将请求发送到服务器以获取网页或应用程序,然后服务器提供响应。

之所以使用客户端-服务器模型,是因为服务器通常比用户设备更强大、更可靠。服务器还经常得到维护并保持在受控环境中,以确保它们始终在线并可用;尽管单个服务器可能会下线,但是通常还有其他服务器待命。同时,用户可以打开或关闭设备,或者可能丢失或损坏设备,但这不会影响其他用户的互联网服务。

服务器可以一次为多个客户端设备提供服务,并且每个客户端设备在访问和浏览互联网的过程中都会向多个服务器发送请求。

多个客户端和服务器交互:

客户端-服务器模型中的多对多关系

每个客户端都会与多个服务器通信,反之亦然。

假设用户正在浏览互联网,并在其浏览器栏中键入“netflix.com”。这将导致向 DNS 服务器请求 netflix.com 的 IP 地址,并且 DNS 服务器通过将 IP 地址提供给浏览器来响应此请求。接下来,用户的浏览器(使用该 IP 地址)针对请求页面上显示的内容(例如电影缩略图、Netflix 徽标和搜索栏)向 Netflix 服务器发出请求。Netflix 服务器将响应传输给浏览器,然后浏览器将页面加载到客户端设备上。

客户端是什么意思?

在 Web 开发中,“客户端”是指 Web 应用中在客户端(最终用户设备)上显示或发生的所有内容。这包括用户看到的内容,例如文本、图像和 UI 的其余部分,以及应用程序在用户浏览器中执行的任何操作。

HTML 和 CSS 等标记语言由客户端的浏览器解释。另外,目前许多开发人员都将客户端流程包含在他们的应用体系结构中,而不再在服务器端执行所有操作;例如,动态网页*的业务逻辑通常在现代 Web 应用中运行客户端。客户端进程几乎都是用 JavaScript 编写的。

在上面的 netflix.com 示例中,指示浏览器显示 Netflix 主页之方式的 HTML、CSS 和 JavaScript 由客户端的浏览器解释。该页面还可以响应“事件”:例如,如果用户的鼠标悬停在一个电影缩略图上,则图像会扩展,而相邻的缩略图会稍微向一侧移动以为扩大的图像腾出空间。这是一个客户端过程的示例;网页中的代码本身会响应用户的鼠标并在不与服务器通信的情况下启动此操作。

客户端也称为前端,但这两个术语并不完全相同。客户端仅指进程运行的位置,而前端指的是运行客户端的进程的类型。

*动态网页是一种不对所有用户显示相同内容、并且会根据用户输入发生变动的网页。Facebook 主页就是动态页面;而 Facebook 登录页面大部分是静态的。

服务器端是什么意思?

与客户端类似,“服务器端”表示发生在服务器而不是客户端上的所有事件。在过去,几乎所有业务逻辑都在服务器端运行,这包括提供动态网页、与数据库交互、身份验证和推送通知。

将所有这些进程托管在服务器端的问题在于,涉及其中任何一个进程的请求都必须每次从客户端一直传输到服务器。这导致了大量延迟。因此,现代的应用程序在客户端运行更多的代码。一种用例是通过在浏览器中运行可对用户看到的内容进行更改的脚本来实时呈现动态网页。

与“前端”和“客户端”一样,后端也是指服务器上发生的进程的术语,尽管后端仅指代进程的类型,而服务器端还指代进程运行的位置。

什么是客户端脚本处理?什么是服务器端脚本处理?

客户端脚本处理意味着通常在客户端设备上的浏览器中运行 JavaScript 之类的脚本。如果使用 JavaScript 编写,则所有类型的脚本都可以在客户端运行,因为 JavaScript 受到普遍支持。其他脚本语言只能在用户浏览器支持的情况下使用。

服务器端脚本通常在服务器而不是客户端上运行,目的是为了响应用户的操作将动态内容传递到网页上。服务器端脚本不必用 JavaScript 编写,因为服务器可能支持多种语言。

脚本在客户端和服务器端运行:

客户端脚本和服务器端脚本

数据在客户端和服务器之间来回传递,脚本可以在两端运行。

服务器端进程如何在无服务器架构中运行?

在无服务器计算中,所有服务器端或后端进程仍在服务器而不是客户端设备上运行,但是它们没有部署在任何特定的服务器或服务器组上。后端进程分为多个函数,它们按需运行并自动扩展。开发人员仍可以在无服务器体系结构中构建通常在服务器端运行的所有功能。

Cloudflare Workers 是在服务器端还是在客户端运行?

Cloudflare Workers 是按需运行的无服务器 JavaScript 函数,它们在 Cloudflare 用于 CDN 缓存的边缘网络上运行,位于客户端和源服务器之间。这使开发人员能够构建这样的无服务器后端:从技术上讲属于服务器端,但尽可能靠近客户端设备,因此能够减少延迟并使应用程序对用户交互的响应速度更快。

要开始使用 Cloudflare Workers,请查阅我们的开发人员文档