Web 服务器如何工作

Web 服务器如何工作。

什么是网络服务器?

Web 服务器是一种侦听传入连接,然后利用 HTTP 协议将 Web 内容传送给客户端的软件。您会遇到的最常见的 Web 服务器软件是 Apache、Nginx、IIS 和 NodeJS。Web 服务器从所谓的根目录传送文件,该根目录是在软件设置中定义的。例如,Nginx 和 Apache 在 Linux 操作系统中共享相同的默认位置 /var/www/html,而 IIS 在 Windows 操作系统中使用 C:\inetpub\wwwroot。因此,例如,如果您请求文件 http://www.example.com/picture.jpg,它会从其本地硬盘发送文件 /var/www/html/picture.jpg

虚拟主机

Web服务器可以托管多个不同域名的网站;为了实现这一目标,他们使用虚拟主机。Web 服务器软件检查从 HTTP 标头请求的主机名,并将其与其虚拟主机进行匹配(虚拟主机只是基于文本的配置文件)。如果找到匹配项,将提供正确的网站。如果未找到匹配项,将提供默认网站。

虚拟主机可以将其根目录映射到硬盘驱动器上的不同位置。例如,one.com映射到 /var/www/website_onetwo.com映射到 /var/www/website_two

您可以在网络服务器上托管的不同网站的数量没有限制。

静态内容与动态内容

静态内容,顾名思义,是永远不会改变的内容。常见的示例有图片、javascript、CSS 等,但也可以包括永不更改的 HTML。此外,这些文件是直接从网络服务器提供的,没有对其进行任何更改。

另一方面,动态内容是可以随着不同请求而改变的内容。以博客为例。在博客的主页上,它会向您显示最新的条目。如果创建了新条目,则主页将更新为最新条目,或者第二个示例可能是博客上的搜索页面。根据您搜索的单词,将显示不同的结果。

您最终看到的这些更改是使用编程和脚本语言在所谓的 后端中完成的。之所以称为后端,是因为所做的一切都是在幕后完成的。你无法查看网站的 HTML 源代码并了解后端发生了什么,而 HTML 是后端处理的结果。您在浏览器中看到的所有内容都称为 前端。

脚本和后端语言

后端语言可以实现的功能没有太多限制,而这些正是使网站与用户交互的原因。这些语言的一些示例(排名不分先后:p)包括 PHP、Python、Ruby、NodeJS、Perl 等等。这些语言可以与数据库交互、调用外部服务、处理来自用户的数据等等。一个非常基本的 PHP 示例是,如果您请求网站 http://example.com/index.php?name=adam

如果index.php是这样构建的:

<html><body>Hello <?php echo $_GET["name"]; ?></body></html>

它将向客户端输出以下内容:

<html><body>Hello adam</body></html>

您会注意到客户端看不到任何 PHP 代码,因为它位于 Backend上。正如您在后续模块中所了解的那样,这种交互性会给尚未安全创建的 Web 应用程序带来更多安全问题。

你可能感兴趣的:(前端,服务器,运维)