为什么“服务器”会是一个程序?

在JavaEE的教学视频和教学书籍中,并没有人解释服务器究竟是什么样子的。服务器究竟能不能被我们看见,我们能不能摸到它。在互联网的视频中,我们见到的服务器往往是一个可以摸得到的“黑色的盒子”。然而在我学习JavaEE的过程中,教学视频告诉我竟然我应该下载“web服务器”。它又说“Tomcat是一款很不错的web服务器。” 什么? “web服务器”是一个可以被下载的东西?我现在非常迷茫,请告诉我为什么服务器会是一个“类似软件的东西”。请不要偏题,或者说不需要告诉我服务器的功能是些什么,我想知道的并不是这一点。谢谢各位。

服务器是用来运行网络服务的机器的统称,即,这个词指代的是硬件层面的机器。
而tomcat是一种比较常用的运行在服务器上的web软件,它是软件,它依赖于服务器运行。
教程视频里说法不严谨或者是视频水平太次。

等你以后熟悉了就习惯了,就一个叫法而已,它本质上就是一个容器,对外提供服务,就是你发送一个类似http://localhost:8080/data/userinfo的请求,我根据你的请求给你返回一串信息。 除了tomcat还有nginx、Apache等也都经常被称为服务器

广义上说服务器是一种计算机,跟我们平时用的电脑一样,只是一般配置更高,我们的电脑也可以做为服务器;
然后“web服务器”、“Tomcat“ 、Apache ... 等这些东西都是一个容器,就是一种运行我们写的程序的 一个程序,这个程序运行在服务器(计算机)上,我们的程序运行在这个容器里;
我们常说把程序部署到服务器上,其实是部署到服务器上的这些容器里面,它不是服务器,只是我们的叫法把它和服务器联系在一起等同了。

你理解的服务器是什么样子的呢?一台电脑吗?
服务器就是对外提供服务的机器,我们的程序可以对外提供服务的时候,这台机器就是服务器。
一般情况下我们写的程序只能通过控制台进行访问,不能通过其他的方式进行访问。这个时候tomcat,nginx就出现了,他们可以让我们的程序通过其他的方式进行访问。把他们下载下来以后,放入我们写的代码,就可以通过各种各样的方式进行访问了。那么这个时候,我们的电脑就是一台服务器,一般叫做本地服务器。如果你写的程序本身就实现了tomcat的功能,那么在你运行程序的时候,这台电脑就是一台服务器了。