服务器理解

服务器

前言

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

一、什么是服务器

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

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

用一个例子来描述:餐厅

想象一家餐厅:

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

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

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

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

如图所示:

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

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

1.物理服务器

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

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

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

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

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

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

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

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

总结

  • 核心角色:服务的提供者。
  • 工作模式:"请求-响应" 模式。
  • 存在形式:可以是实体机器,也可以是虚拟机器(云服务器)。
  • 构成:是强大稳定的硬件 + 提供特定服务的软件 的结合体。
  • 重要性:它是互联网、企业IT和所有数字服务的基石,是数字时代的"幕后英雄"。
相关推荐
天亮之前_ict2 小时前
【故障排查】intel 服务器安装Win server 2019蓝屏解决方法
运维·服务器
熙客3 小时前
Linux:监控命令
linux·运维
飞鱼&3 小时前
Linux 常用命令
linux·运维·服务器
喵了几个咪3 小时前
使用Bazel构建你的Kratos微服务
java·运维·微服务
努力还债的学术吗喽3 小时前
ffmpeg离线安装到服务器:解决conda/sudo/无法安装的通用方案
服务器·ffmpeg·conda
偶像你挑的噻4 小时前
4-Linux驱动开发-字符设备驱动
linux·运维·驱动开发
2401_865854884 小时前
AI软件可以帮助我自动化哪些日常任务?
运维·人工智能·自动化
qq_401700414 小时前
Linux 信号机制
linux·运维·服务器
_Stellar4 小时前
Linux 服务器配置 rootless docker Quick Start
linux·服务器·docker