国内web服务器-Web服务器是如何在内部工作的?
Web 服务器是一种软件或硬件(或两者兼有),它们在基本级别上存储内容并将其传送到 Web 浏览器。服务器使用超文本传输协议 (HTTP)与浏览器通信。Web 服务器还可以支持 SMTP(简单邮件传输协议)和 FTP(文件传输协议)。
Web 服务器还用于托管 Web 应用程序的网站和数据。他们可以使用虚拟化托管单个网站和多个网站。
为什么理解这个问题的答案很重要,Web 服务器是如何工作的?网站的成功不仅取决于其内容和功能,还取决于用于为其提供动力的 Web 服务器的效率。这需要了解 Web 服务器的功能和限制。在讨论 Web 服务器的工作方式时,仅仅概述低级网络数据包如何进出 Web 服务器的图表是不够的。
多年前,当 Web 服务器首次出现原型时,它们提供简单的 HTML 文档和图像。今天,正如我们将在本教程后面介绍的那样,它们经常用于更多用途。
第一步是将 Web 服务器视为一个黑匣子并提出以下问题:它是如何工作的;它可以实现什么?大多数 Internet 用户认为网站的成功或失败取决于其内容和功能,而不是用于为其提供支持的服务器,这是一个安全的假设。但是,选择正确的服务器并了解其功能和局限性是通往成功之路的重要一步。
Web 服务器如何在内部工作?
当 Web 服务器收到对网页内容的请求时,并将该统一资源定位符 (URL)映射到主机服务器上的本地文件。
在这种情况下,文件
- 索引.html
位于主机文件系统的某处。然后服务器从磁盘加载该文件,并通过网络将其提供给用户的 Web 浏览器。这整个交换是由浏览器和服务器使用 HTTP 相互通信来调解的。此工作流程如下图所示。
这里的所有都是它的。但如果就这么简单,那为什么要进行如此深入的教程呢?
因为这种允许向 Web 浏览器提供静态内容(例如超文本标记语言 (HTML)和图像文件)的简单安排是我们现在称为万维网的最初概念。它的简单之美在于它使浏览器和 Web 服务器之间的信息交换变得可能更加复杂。
也许对此最重要的扩展是动态内容的概念(即,直接或间接响应用户输入而创建的网页)。最古老和最常用的标准是通用网关接口 (CGI)。这是一个相当无意义的名称,但它基本上定义了 Web 服务器应该如何在本地运行程序并通过 Web 服务器将其输出传输到请求动态内容的用户 Web 浏览器。
出于所有意图和目的,用户的 Web 浏览器永远不必真正知道内容是动态的,因为 CGI 基本上是 Web 服务器扩展协议。下图显示了当浏览器请求从 CGI 程序动态生成的页面时会发生什么。
第二个重要的进步,也是使电子商务成为可能的进步,是引入了安全的超文本传输协议 (HTTPS)。该协议允许在浏览器和 Web 服务器之间进行安全通信。
简而言之,这意味着用户和服务器通过可能被视为不安全的网络相互传输敏感数据是安全的。然而,当数据到达任一端时会发生什么是另一回事,不应忽略。我们稍后会讨论这个问题。
上述安排的简单性具有欺骗性,低估其复杂性通常会导致对 Web 托管基础设施的设计做出错误的决定。很容易将注意力集中在网页本身的设计和用于创建动态内容的技术上,例如Java、Javascript、Perl、C/C++ 和 ASP,而随后忽略了这些技术中的每一种都可以运行它们的平台——Web 服务器本身——的帮助或阻碍。
换句话说,解释 Web 服务器的工作原理不仅仅涉及讨论 Web 服务器如何提供文档。我们将讨论以下主题,以找出现代 Web 服务器执行其活动的内容和方式。
我们将首先解释 Web 服务器必须做什么的底层细节。然后,我们将讨论围绕使用 Web 服务器的问题以及它如何适应 Internet 的其他基础设施元素的范围。然后,我们将讨论应用程序与 Web 服务器之间的关系。