JavaRush /Java 博客 /Random-ZH /服务器。傻瓜教育计划

服务器。傻瓜教育计划

已在 Random-ZH 群组中发布
下面我们提供了 Panopto 开发人员 Kannan Chandrasegaran 的文章《非技术人员服务器指南》的改编翻译。请注意,本文面向对应用程序和服务器的服务器端概念不太熟悉的初学者。 服务器。 傻瓜教育计划 - 1

从办公室生活开始

相信我,在 IT 公司做一名“非技术人员”是很困难的!营销人员、销售经理、会计师——没关系——他们时不时会遇到技术精湛的同事。他们可以是程序员或系统管理员……无论哪种方式,“非技术人员”都会感觉自己的大脑的一个重要部分被截肢了。或者他们降落在一个未知的星球上,那里有智慧的非人形生命。或者…
服务器。 傻瓜教育计划 - 2
当然,有时一切都会有美好的结局。例如,一个前端女孩正在走廊上行走。没有什么预示着麻烦:她朝左边走,你朝右边走,而且要尽快……不,这次没有发生。你已经和她坐在桌边,试图克服尴尬的沉默,你问道:“那么……你到底是做什么的?” 她开始说些什么,但你并不能立即明白她在说什么。这些词似乎很熟悉:用户界面、应用程序,还有——是的,Facebook 是一个网站。是的,有按钮、菜单……你不知何故弄清楚了她工作的复杂性,向她点头告别,然后你们在一间大办公室的走廊里分道扬镳。
服务器。 傻瓜教育计划 - 3
但迟早你不会那么幸运:你会遇到服务器工程师。或者后端开发人员。不知道你现在会发现自己身处什么样的丛林,你天真地问了同样的问题,然后……收到了胡言乱语的回应。你听到很多外来词,脑海中闪过一些念头:“问 API 是什么是礼貌的吗?”、“我们一直在使用‘数据库’,不是吗?”、“到底是谁?这个杰森?”(JSON)??”。你的工程师朋友试图向你介绍服务器,但他不明白你理解他充满专业术语的演讲有多困难。您以前可能听说过“服务器”这个词,但它在许多不同的上下文中使用,因此很难理解它的含义。好吧,让我们试着理解这个术语。

掉进兔子洞

当普通人(意思是,不是程序员或管理员)使用应用程序时,他看到的只是界面,即对某些明显(最常见)操作做出反应的图片。事实上,用户通常理解的“应用程序”是它的前端,即前端部分,是与他们交互的包装器。但用户对应用程序的内部结构(即应用程序的运行原理)知之甚少。假设您通过 Whatsapp 或 Viber 等方式向我发送消息。看起来有一条消息从你的智能手机发送到我的。让我们仔细看看这个过程。假设您在我的手机关闭时向我发送了一条消息,然后您自己关闭了智能手机。于是,我打开手机,仍然收到你的消息,尽管我们的手机不能同时工作。看来我们错过了一些东西!这就是我们错过的“东西”——后端或服务器。
服务器。 傻瓜教育计划 - 4
当程序员谈论前端和后端时,他们通常指的是应用程序的用户部分与程序逻辑的分离。因此,前端是应用程序的界面部分,后端是其服务器部分。

服务器

本质上,服务器是一台计算机器,一台连接到互联网并不断开启的计算机。
服务器的两个主要任务是数据存储和通信。
服务器。 傻瓜教育计划 - 5
您通过 Whatsapp 或 Viber 发送消息,智能手机上的应用程序会将消息发送到存储消息的服务器。当我的智能手机上安装的 Viber 连接到服务器时,它会向我发送所有存储的消息。
服务器是应用程序运行的“基站”
当应用程序需要任何信息时,它会联系服务器。当应用程序需要与该应用程序的另一个用户通信时,服务器允许他们进行通信。服务器、后端和 API 等术语通常可以互换使用。

存储或数据存储系统

服务器的主要任务是数据存储。这包括文件:照片、视频和文档。服务器以类似于计算机上文件夹的结构化方式存储它们,因此应用程序可以访问它们。信息也存储在服务器上。所有应用程序都包含对其操作重要的信息。
服务器。 傻瓜教育计划 - 6
您可以将此信息呈现为一组表格。例如,应用程序需要存储有关用户及其密码的信息,以便进行身份验证。您的应用程序可以是餐厅指南,在这种情况下,服务器将存储有关每个餐厅的信息。除了信息本身之外,服务器还记录数据之间的关系。例如,用户在智能手机上的应用程序中喜欢一家餐馆,服务器会记住该餐馆和用户之间的这种联系。
服务器。 傻瓜教育计划 - 7
这可以让你回答很多问题。例如:
  • 有多少用户喜欢这家餐厅?
  • 该用户喜欢哪些餐厅?
  • 哪些美食能够同时吸引多个用户?
信息和数据之间的关系存储在数据库(DB)中。数据库有很多种类型,但它们都是:
  • 可以存储信息
  • 可以存储数据之间的关系
  • 可以接收信息请求并根据请求将其作为单个数据或一组数据进行响应。
数据库有很多种类型,每种类型都有自己的优点和缺点。如果您听到 SQL、MySQL、MongoDB、CouchDB、Redis 等术语,那么就知道我们正在谈论数据库。

相互作用

服务器的关键任务是与应用程序和其他服务器交互。
服务器。 傻瓜教育计划 - 8
许多应用程序任务需要与服务器交互。例如,如果用户正在搜索某些内容,则搜索查询将发送到服务器,并且结果来自那里。如果一个用户向另一个用户发送消息,该消息首先到达服务器。然后从那里将其发送到另一个用户的应用程序,通常以发送通知的形式。服务器提供的供应用程序与其交互的接口通常称为API嗯,一些接口功能可以与端点相关联,例如与站点上的搜索或授权相关联。对于外行来说,这种互动可能看起来很奇怪。两种最常见的互操作格式是 JSON 和 XML。
服务器。 傻瓜教育计划 - 9
左边是 XML,右边是 JSON 乍一看,这些格式看起来很难阅读。重要的是要了解服务器只是一台计算机,就像您的笔记本电脑或智能手机一样。手机上的应用程序通过语音、文本、语音识别或触摸屏幕接受用户输入。应用程序处理这些信息,然后在屏幕上以图像的形式提供答案。智能手机是与人交互的计算机,因此以方便人的形式提供输入和输出。服务器是一台仅与其他计算机交互的计算机。一个人通过以下因素来感知信息:字体大小、文本颜色和格式。但这对计算机来说毫无意义。
服务器之间的交互以其他计算机易于解析和理解的格式进行。

服务器应用

如果您想创建一个在手机上运行的应用程序,您还需要一个在服务器上运行的应用程序。服务器端应用程序是使用服务器端编程语言和框架创建的,流行的选项是JavaRuby on RailsNode.jsPHPASP.NET
服务器。 傻瓜教育计划 - 10
您可以说 API 是服务器的“门”,应用程序知道要敲开它们。数据库存储您的所有信息。服务器应用程序是将一切连接在一起的“大脑”。它接收并响应通过 API 发送给它的请求,添加和检索数据库中的信息,并做出决策。例如,当用户应用程序提交登录信息时,请求通过API发出,正确的登录信息存储在数据库中。服务器应用程序的任务是比较它们并使用 API 对应用程序做出相应的响应。

硬件

服务器。 傻瓜教育计划 - 11
当您听到“服务器”这个词时,您可能会想到这样的图像:封闭的房间里灯光闪烁的橱柜。也许,为了完成这幅画,唯一缺少的是汤姆·克鲁斯,他将从天花板上下来偷东西。许多大公司拥有自己的服务器和整个数据中心(那些带有闪烁机柜的巨大房间)。Facebook 和 Google 在全球拥有数百台服务器。当您运行拥有数百万用户的庞大服务时,运行自己的服务器可以显着降低成本并提供更好的性能。许多开发人员不再维护自己的服务器,而是使用云服务。Amazon Web Services、Azure 和 Digital Ocean 等服务提供了使用“虚拟服务器”的能力。这些服务拥有并维护硬件,开发人员只需在其上加载服务器应用程序即可。一些服务提供商将后端作为服务提供,允许您拥有一个简单的后端,而无需自己编写后端应用程序。

所有应用程序都需要后端吗?

您熟悉的大多数应用程序可能都有后端组件。当然,您可以找到没有服务器部分的程序。例如,一些生产力应用程序。确定应用程序是否有后端的简单方法如下所示:
如果切换到飞行模式,该应用程序还能运行吗?
如果答案是“否”,则意味着该应用程序肯定有后端服务器。
服务器。 傻瓜教育计划 - 12
我希望您现在已经了解应用程序的后端是什么。也许下次你见到你的程序员同事时,你不仅能够理解他们在说什么,而且还能在谈话中使用一些该死的“Jason”。
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION