Internet Technologies 简明教程

Web Server

Overview

Web server 是一个存储网络内容的计算机。基本的网络服务器用来承载网站,但也存在其他网络服务器,例如游戏、存储、FTP、电子邮件等。

Web Server Working

网络服务器以以下两种方式之一响应客户端请求:

  1. 将文件发送给与请求的 URL 关联的客户端。

  2. 通过调用脚本并与数据库通信来生成响应

internet web server working

Key Points

  1. 当客户端发送对网页的请求时,网络服务器会搜索请求的页面,如果找到请求的页面,将会通过 HTTP 响应将其发送给客户端。

  2. 如果找不到请求的网页,网络服务器会发送一个 HTTP response:Error 404 Not found.

  3. 如果客户端请求其他资源,网络服务器会联系应用程序服务器和数据存储,来构建 HTTP 响应。

Architecture

网络服务器架构采用以下这两种方法:

Concurrent Approach

并发方法允许网络服务器同时处理多个客户端请求。可以通过以下方法实现:

  1. Multi-process

  2. Multi-threaded

  3. Hybrid method.

Multi-processing

在这种情况下,单个进程(父进程)启动多个单线程子进程,并将传入请求分配给这些子进程。每个子进程负责处理单个请求。

由父进程负责监控负载,并决定是应该中止进程还是创建新进程。

Multi-threaded

与多进程不同,它创建了多个单线程进程。

Hybrid

它结合了上述两种方法。在这种方法中,会创建多个进程,每个进程会启动多个线程。每个线程处理一个连接。在单个进程中使用多个线程,会导致系统资源上的负载更少。

Examples

下表介绍了当今最主流的网络服务器:

S.N.

Web Server Descriptino

1

Apache HTTP Server 这是全球最流行的网络服务器,由 Apache Software Foundation 开发的。Apache 网络服务器是一个开源软件,可以安装在几乎所有操作系统上,包括 Linux、UNIX、Windows、FreeBSD、Mac OS X 等。大约 60% 的网络服务器机器运行的是 Apache 网络服务器。

2.

Internet Information Services (IIS) Internet Information Server (IIS) 是 Microsoft 的一项高性能网络服务器。此网络服务器运行在 Windows NT/2000 和 2003 平台上(也可能在即将到来的新 Windows 版本中)。IIS 与 Windows NT/2000 和 2003 捆绑在一起;因为 IIS 与操作系统紧密集成,所以管理它相对容易。

3.

Lighttpd Lighttpd,发音为 lighty,是一个免费的网络服务器,它随 FreeBSD 操作系统一起分发。这个开源网络服务器快速、安全,并且消耗的 CPU 功率少很多。Lighttpd 还可以运行在 Windows、Mac OS X、Linux 和 Solaris 操作系统中。

4.

Sun Java System Web Server 这个来自 Sun Microsystems 的网络服务器适合于中型和大型网站。虽然这个服务器是免费的,但不是开源的。但是,它可以在 Windows、Linux 和 UNIX 平台上运行。Sun Java System 网络服务器支持 Web 2.0 所需的各种语言、脚本和技术,比如 JSP、Java Servlets、PHP、Perl、Python、Ruby on Rails、ASP 和 Coldfusion 等。

5.

Jigsaw Server Jigsaw(W3C 的服务器)来自万维网联盟。它开源免费,并且可以运行在 Linux、UNIX、Windows、Mac OS X Free BSD 等各种平台上。Jigsaw 用 Java 编写而成,并且可以运行 CGI 脚本和 PHP 程序。