Tomcat 为什么即使您想在本地计算机上查看网站,我们也需要Web服务器?

Tomcat 为什么即使您想在本地计算机上查看网站,我们也需要Web服务器?,tomcat,iis,webserver,Tomcat,Iis,Webserver,我知道web服务器的部分工作是使您的网络之外的人能够访问它。所以你得到一个有一些IP的(物理/硬件)服务器,把网站的源文件放在这台计算机上的一个特定文件夹中。在这台计算机上运行的web服务器知道如何“满足”它从客户端收到的请求。在中,它知道要查找哪个目录,在linux中是/var/www,并选择默认文件index.html 但是,如果您想从您的计算机之外的计算机访问文件(基本上),这是可以的。但是,如果您只想从计算机内部查看这些文件,为什么还需要web服务器呢 为什么像php、Node.JS等后

我知道web服务器的部分工作是使您的网络之外的人能够访问它。所以你得到一个有一些IP的(物理/硬件)服务器,把网站的源文件放在这台计算机上的一个特定文件夹中。在这台计算机上运行的web服务器知道如何“满足”它从客户端收到的请求。在中,它知道要查找哪个目录,在linux中是/var/www,并选择默认文件index.html

但是,如果您想从您的计算机之外的计算机访问文件(基本上),这是可以的。但是,如果您只想从计算机内部查看这些文件,为什么还需要web服务器呢


为什么像php、Node.JS等后端语言需要web服务器?

要查看静态HTML文件,您不需要web服务器-浏览器只需从磁盘加载文件并显示它:

file:///home/user/test.html
但是,HTML通常需要动态生成。例如,网站可能需要您登录,然后向其他人展示不同的内容

这种逻辑需要在某个地方运行,对于web页面,它运行在web服务器中(理解HTTP协议的东西,这是浏览器请求数据的方式)

作为一个例子,考虑一个像Gmail这样的电子邮件站点,你想在浏览器中查看你的收件箱。您可以在计算机上运行一个进程,不断轮询您的收件箱,并创建一组包含收件箱及其所有电子邮件的静态文件。但是,你不能用它来创建一封新的电子邮件——这只是提供邮件只读视图的一种非常低效的方式


或者,您可以使用一个web服务器,它接收来自浏览器的请求,并在此时获取您的邮件,动态生成显示收件箱所需的HTML,然后将此HTML返回到浏览器进行显示。

想象一下,我是gmail的开发人员,也是gmail的唯一用户。也就是说,gmail的sql数据库也驻留在我的系统中。另外,让我们暂时离开web/浏览器,认为gmail是一个从终端运行的小型python程序,它只查询数据库并将结果打印到终端。为什么必须从web服务器内部运行相同的浏览器版本。浏览器正在添加什么?web服务器的工作是将请求从客户端路由到服务器。在这种情况下,不需要路由,因为客户端和服务器位于同一系统上。因此,不需要web服务器?浏览器无法运行Python程序-它只知道如何获取和呈现HTML并运行JavaScript(大大简化),出于安全原因,它在沙箱中执行此操作,因此无法读取您的银行帐户详细信息并将其发布到其他地方。因此,它需要请求其他的东西来做一些事情,比如为它运行SQL查询,这就是web服务器的用武之地。web服务器不会路由请求,它会处理请求并响应请求(可能会调用PHP之类的工具来帮助解决问题)。只是有一个愚蠢的想法——当你谈论web服务器时,你不是指物理上独立的机器,对吗?您可以在与浏览器相同的计算机上本地运行web服务器(例如Apache),并使用
http://localhost/
以访问它。