服务器理解

服务器

前言

最近需要学习ESP32 S3的远程通信,即互联网通信,在这之前我先了解了一下远程通信的流程,这个后面会说,这里我们先说一下远程通信必不可少的一环"服务器"

一、什么是服务器

服务器 是一种为其他计算机(称为"客户端")提供数据、资源、服务或程序的专用计算机。
关键在于理解以下几点:

  • 它是一种角色,而非特定外形: 任何计算机(甚至你的笔记本电脑)只要安装了相应的软件,并在网络上为其他设备提供服务,它就可以被称为服务器。
  • 遵循"客户端-服务器"模型: 这是一种网络架构。客户端(如你的手机、浏览器)主动发出请求,服务器被动响应并提供服务。
  • 硬件与软件的结合:
  • 硬件: 通常是高性能、高可靠性、能长期稳定运行的计算机。
  • 软件: 安装了提供特定服务的程序(如网站服务程序、数据库程序等)。

用一个例子来描述:餐厅

想象一家餐厅:

  • 顾客 (Client/客户端): 你走进餐厅,点了一份牛排。
  • 服务员 (Server/服务器): 他听到你的请求,将订单送到后厨,然后把做好的牛排端给你。
  • 后厨 (数据中心): 一个专门负责生产食物的地方,拥有强大的炉灶和充足的食材。

在这个比喻中,服务员(服务器)的核心工作就是"接收请求 -> 处理请求 -> 返回结果"。

简而言之,我个人的理解就是在互联网的通信中,服务器就相当于一个中转站,数据的交互离不开服务区,我们需要的数据都需要从服务器上去获取;当然我们也可以向服务器上传数据以便其它的客户端可以通过服务器得到我们的数据。

不论是获取数据还是上传数据其实都是属于服务器的同一个工作流程,即上诉所说的核心工作,"接收请求 -> 处理请求 -> 返回结果"。
接收请求: 我们的请求无非就是获取数据或上传数据,这里对于服务器来说都是一样的效果,如果客户端想要上传数据到服务器,那服务器就接收数据保存起来;如果客户端想获取数据,那服务器就找到对应的数据响应客户端。
处理请求: 这里的处理请求,其实就是数据处理的一个过程,如果是客户端上传数据,服务器的操作就是将数据保存下来;如果是客户端获取数据,那么服务器就查阅本身的内存空间,找到对应的数据返回,这个处理过程就是根据请求来进行的。
返回结果: 返回结果就是响应客户端的请求,客户端上传数据时告诉客户端我收到了已经保存好了;客户端获取数据时则返回对应的数据。

如图所示:

我的理解就是整个互联网就是无数个服务器组成的,每个客户端都可以通过访问同一个服务器完成信息的交互,如果有其它见解的,欢迎留言讨论,虚心请教各个大佬。

二、服务器的两种主要形态

1.物理服务器

概念: 一台看得见摸得着的实体计算机。
特点: 但它和家用电脑不同,它更强大、更稳定,为了7x24小时不间断运行而设计。它们通常被集中放置在叫做数据中心(机房) 的地方。

2.虚拟服务器 / 云服务器

概念: 这不是实体机器。它是通过技术,将一台强大的物理服务器"分割"成多个独立的虚拟服务器。其实这里虚拟的服务器本质上也属于物理服务器,也是建立在物理服务器之上。

优点: 灵活、成本低、资源利用率高。我们现在常用的阿里云、腾讯云等提供的都是这种服务。

三、服务器是做什么的?(功能与用途)

服务器支撑着我们数字世界的方方面面,你使用的每一个网络服务背后几乎都有一台或多台服务器:

  • 当你浏览网页时: 你的浏览器(客户端)向网站服务器(如运行Nginx、Apache软件的服务器)请求网页数据。
  • 当你使用App时: 手机App(客户端)与应用服务器和数据库服务器通信,获取视频、商品信息和你发布的内容。
  • 当你收发邮件时: 邮件服务器(如Outlook、Gmail的服务器)负责接收、存储和转发你的邮件。
  • 当你玩网络游戏时: 游戏服务器负责处理所有玩家的数据,保证大家在同一个世界里公平地交互。
  • 当你使用网盘时: 文件服务器为你提供了远程的存储空间。

总而言之,服务器的功能就是作为网络中的"服务提供者",响应来自"客户机"的请求,提供计算、存储、应用、数据和通信等各种服务。它从幕后支撑着我们工作、娱乐和沟通的每一个数字瞬间,是信息化社会不可或缺的基石。

总结

  • 核心角色:服务的提供者。
  • 工作模式:"请求-响应" 模式。
  • 存在形式:可以是实体机器,也可以是虚拟机器(云服务器)。
  • 构成:是强大稳定的硬件 + 提供特定服务的软件 的结合体。
  • 重要性:它是互联网、企业IT和所有数字服务的基石,是数字时代的"幕后英雄"。
相关推荐
威迪斯特14 小时前
CentOS图形化操作界面:理论解析与实践指南
linux·运维·centos·组件·图形化·桌面·xserver
一方热衷.14 小时前
在线安装对应版本NVIDIA驱动
linux·运维·服务器
独自归家的兔14 小时前
ubuntu系统安装dbswitch教程 - 备份本地数据到远程服务器
linux·运维·ubuntu
m0_6948455714 小时前
tinylisp 是什么?超轻量 Lisp 解释器编译与运行教程
服务器·开发语言·云计算·github·lisp
ONE_SIX_MIX14 小时前
ubuntu 24.04 用rdp连接,桌面黑屏问题,解决
linux·运维·ubuntu
龙飞0514 小时前
Systemd -systemctl - journalctl 速查表:服务管理 + 日志排障
linux·运维·前端·chrome·systemctl·journalctl
*小海豚*14 小时前
在linux服务器上DNS正常,但是java应用调用第三方解析域名报错
java·linux·服务器
春日见14 小时前
如何创建一个PR
运维·开发语言·windows·git·docker·容器
DARLING Zero two♡14 小时前
告别 Docker 命令行!Portainer+cpolar 让容器管理从局域网走向公网
运维·docker·容器
消失的旧时光-194314 小时前
Linux 编辑器入门:nano 与 vim 的区别与选择指南
linux·运维·服务器