![好奇服务器如何工作](https://linux22.com/image/877352/%E5%A5%BD%E5%A5%87%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%A6%82%E4%BD%95%E5%B7%A5%E4%BD%9C.png)
我目前是一名高中生,开发了一些连接到 Parse.com 的 iPhone 应用程序,所以我对“服务器”(预制)的工作原理略知一二。但我知道这不是从头开始构建服务器的方式,而且还有更多内容。
我的问题是,服务器究竟是如何工作的?它基本上是一个操作系统吗?使用 Ubuntu Desktop 和 Ubuntu Server 运行服务器有什么区别?
我最大的疑问是:你把你写的代码放在哪里?我该如何在一个有数据库和 iPhone API 的真实服务器上复制 Parse.com?
从高层次的概念上讲,如果我想编写一个与服务器通信的极其基本的应用程序,我该怎么做?例如,假设我有一个 iPhone 或 Web 应用程序,要求输入用户名。当它获得用户名时,我想将其发送到服务器,并回复“你好,[用户名]!”(我知道我可以在实际应用程序上非常轻松地在 Swift 或 Javascript 中执行此操作,但仅用于演示目的。)我该如何设置服务器、连接到服务器、在应用程序中获取响应,以及将响应应用程序的代码放在服务器上的什么位置?
如果这是错误的地方或是一个基本问题,我很抱歉,但我似乎无法在网上找到我一直渴望得到的关键答案。我非常想知道这些概念。我是一个非常好奇和独立的学者,但只是不知道从概念上从哪里开始。
非常感谢您的帮助。再次重申,我非常想知道并找到这个问题的答案。
亚历克斯(Alex),一位好奇的高中生。
答案1
服务器究竟如何工作?
以 Web 服务器的工作流程为例:
桌面(Ubuntu 桌面安装)
- 浏览器
- URL包含域和参数
- 等待结果并展示
- 浏览器
具有此域的计算机(Ubuntu 服务器安装)
- 网络服务器 (Apache)
- 获取参数并执行的程序。执行所需的操作(创建网站、内容、显示表单等)。可以与数据库 (MySQL)、编码语言 (Python、Perl、Javascript) 结合使用。
- 将结果发送至桌面
- 网络服务器 (Apache)
它基本上是一个操作系统吗?
嗯。不。Ubuntu 是操作系统。它之所以成为服务器,是因为您在其上安装了服务器软件并进行了设置。就像使用 Apache(= 网络服务器)托管网站一样。您还可以组合使用或拥有数据库(MySQL;数据库服务器)或邮件系统(= 邮件服务器)。
使用 Ubuntu 桌面和 Ubuntu 服务器运行服务器有什么区别?
什么都没有。您可以删除“桌面”组件并拥有“服务器”。您可以使用“桌面”安装服务器软件,如 Web 服务器、打印服务器、数据库服务器、邮件服务器、模板服务器等,并将其称为服务器。
我该如何设置服务器
- Ubuntu 有一个安装程序,可以安装所有内容并使用您的台式机为您创建一个基本设置。
sudo apt-get install lampserver^
将安装 Apache、Mysql、Perl 的 Linux 版本并为您设置它,以便您可以将浏览器指向它http://localhost
,它将显示一个带有“ItWorks!”的网站。
- 如果您希望远程工作,您需要购买一个域名,获得一个 IP 地址(以及该 IP 的名称),然后您可以使用该 IP 或该名称而不是本地主机。
答案2
使用 Ubuntu 桌面和 Ubuntu 服务器运行服务器有什么区别?
https://help.ubuntu.com/community/ServerFaq
自 12.04 以来,由于 Linux-image-server 合并到 Linux-image-generic,Ubuntu 桌面和 Ubuntu 服务器之间的内核没有区别。
但是,Ubuntu Server 没有不必要的桌面元素,从而可以更高效地为网站或数据库提供服务。
它基本上是一个操作系统吗?
它不是操作系统。但是,它建立在操作系统之上。操作系统是制作服务器的先决条件(显然)。并且对操作系统没有强制要求。它可以是 Windows 或 Ubuntu。无论你想用什么。
我的问题是,服务器实际上是如何工作的?
如果您将自己的台式机变成服务器,您将更好地理解服务器的工作原理。对于 Ubuntu,以下命令将非常有效,您将最终拥有一个服务器。
sudo apt-get install lamp-server^
您可以托管网站 (HTTP)、提供数据库 (MYSQL) 甚至文件 (FTP)。一旦拥有它,您就可以试用它并探索选项。
祝你好运!