“网络服务器”可以代指硬件或软件,或者是它们协同工作的整体

“网络服务器”可以代指硬件或软件,或者是它们协同工作的整体

“网络服务器”可以代指硬件或软件,或者是它们协同工作的整体

“网络服务器(Web server)”可以代指硬件或软件,或者是它们协同工作的整体。

硬件部分,一个网络服务器是一台存储了网络服务软件以及网站的组成文件(比如,HTML文档、图片、CSS样式表和JavaScript文件)的计算机。它接入到互联网并且支持与其他连接到互联网的设备进行物理数据的交互。

软件部分,网络服务器包括控制网络用户如何访问托管文件的几个部分,至少他要是一台HTTP服务器。一台HTTP服务器是一种能够理解URL(网络地址)和HTTP(浏览器用来查看网页的协议)的软件。通过服务器上存储的网站的域名(比如http://mozilla.org)可以访问这个服务器,并且他还可以将他的内容分发给最终用户的设备。

基本上,当浏览器需要一个托管在网络服务器上的文件的时候,浏览器通过HTTP请求这个文件。当这个请求到达正确的网络服务器(硬件)时,HTTP服务器(软件)收到这个请求,找到这个被请求的文档(如果这个文档不存在,那么将返回一个404响应), 并把这个文档通过HTTP发送给浏览器。

要发布一个网站,你需要一个静态或动态的服务器。

静态网络服务器(static web server),或者堆栈,由一个计算机(硬件)和一个 HTTP 服务器(软件)组成。我们称它为 “静态” 是因为这个服务器把它托管文件的 “保持原样” 地传送到你的浏览器。

动态网络服务器(dynamic web server) 由一个静态的网络服务器加上额外的软件组成,最普遍的是一个应用服务器 [application server] 和一个数据库 [database]。我们称它为 “动态” 是因为这个应用服务器会在通过 HTTP 服务器把托管文件传送到你的浏览器之前会对这些托管文件进行更新。

举个例子,要生成你在浏览器中看到的最终网页,应用服务器或许会用一个数据库中的内容填充一个 HTML 模板。网站像 MDN 或者维基百科 [Wikipedia] 有成千上万的网页,但是它们不是真正的 HTML 文档,它们只是少数的 HTML 模板以及一个巨大的数据库。这样的设置让它更快更简单地维护以及分发内容。

“网络服务器”可以代指硬件或软件,或者是它们协同工作的整体

深入探索

要取得一个网页,如同我们已经说过的那样,你的浏览器会发送一个请求到网络服务器,继而这个网络服务器会在它自己的存储空间中搜索所请求的文件。当找到这文件时,这个服务器会读取它,按需处理它,并且把它传送回浏览器。让我们更仔细地观察这些步骤。

托管文件

一个网络服务器首先需要存储这个网站的文件,也就是说所有的 HTML 文档和它们的相关资源 (related assets),包括图片,CSS 样式表,JavaScript 文件,字形 (fonts) 以及影像。

严格来说,你可以在你自己的计算机上托管所有的这些文件,但是在一个专用的网络服务器上存储它们会方便得多,因为它会一直启动和运行,会一直与互联网连接,会一直拥有一样的 IP 地址(不是所有的 ISPs 都会为家庭线提供一个固定的 IP 地址)由一个第三方提供者维护。

因为所有的这些原因,寻找一个优秀的托管提供者是建立你的网站的一个重要部分。比较不同公司提供的服务并选择一个适合你的需求和预算的服务(服务的价格从免费到每月上万美金不等)。你可以在这篇文章 (article)中找到更多的细节。