编写简易web服务器教程 (编写一个简单的web服务器)

编写简易 web 服务器教程

随着互联网的快速发展,web 服务器成为了实现服务器端应用开发的必备工具之一。web 服务器的作用是接收来自客户端的请求,并返回相应的响应结果。本教程将帮助你了解如何编写简易的 web 服务器。

1. 理解 web 服务器的工作原理

在编写 web 服务器之前,我们需要先了解其工作原理。当浏览器发起 http 请求时,web 服务器会接收到该请求并解析客户端发来的数据。然后服务器会根据请求的内容,读取或处理数据,并将响应结果返回给客户端。

2. 选择一个开发语言

编写 web 服务器需要选择一个适当的开发语言。常用的开发语言有 Python,Java,C++,Go 等。本教程使用 Node.js 进行开发。

3. 安装 Node.js & Express 库

Node.js 是一个开源的、跨平台的 JavaScript 运行时环境。我们可以使用它来编写服务器端应用。安装 Node.js 非常简单,只需要在官网下载安装包并安装即可。

Express 是一个基于 Node.js 的 web 应用程序框架。它提供了一系列强大的功能,例如处理路由、处理 HTTP 请求等。我们可以使用 Express 来搭建自己的 web 服务器。使用以下命令安装 Express:

“`

npm install express –save

“`

4. 编写一个最简单的服务器

我们可以使用以下代码来实现一个最简单的服务器:

“`

const express = require(‘express’)

const app = express()

app.listen(3000, () => {

console.log(‘Server is running’)

})

“`

在该代码中,我们使用 Express 框架创建了一个服务器实例,并告知其监听 3000 端口。当客户端请求访问该服务器时,它会返回一个 “Server is running” 字符串。

5. 处理路由请求

当客户端请求访问服务器路径时,web 服务器需要根据请求的路径来判断应该返回什么内容。使用 Express,你可以简单地为各种路径定义处理器函数。以下是一个简单的示例:

“`

app.get(‘/’, (req, res) => {

res.send(‘Hello World!’)

})

app.get(‘/about’, (req, res) => {

res.send(‘About us’)

})

“`

当客户端请求访问根路径时,服务器会返回 “Hello World!” 字符串。当客户端请求访问 “/about” 路径时,服务器会返回 “About us” 字符串。

6. 处理 POST 请求

在 web 服务器中,POST 请求用于向服务器发送数据。使用 Express,我们可以编写处理 POST 请求的代码,如下所示:

“`

app.post(‘/submit’, (req, res) => {

const { username, password } = req.body

// 处理用户名和密码

res.send(‘Data submitted successfully’)

})

“`

在该代码中,当客户端发送 “/submit” 路径的 POST 请求时,服务器会解析请求体中的数据,并使用其中的用户名和密码进行处理。处理完毕后,服务器会返回 “Data submitted successfully” 字符串。

7. 处理静态资源请求

web 服务器中,有很多请求是针对静态资源的,例如 HTML 文件、CSS 文件、JavaScript 文件等。使用以下代码可以处理静态资源请求:

“`

app.use(express.static(‘public’))

“`

在该代码中,我们使用 express.static 中间件来处理文件请求。该中间件会将 public 目录下的所有文件当做静态资源来处理。

8. 结尾

到此为止,我们已经了解了编写简易 web 服务器的基本步骤。但需要注意的是,这只是一个最简单的例子。实际的 web 服务器应该包含更多的功能和安全性规则,以应对更加复杂和多变的场景。希望本教程能够为你提供帮助和启示。

相关问题拓展阅读:

如何在web服务器部署一个网站

在web服务器部署一个网站的方法

一般在安装操作系统时不默认安装IIS,所以在之一次配置Web服务器时需要安装IIS。安装方法为:

1、打开“控制面板”,打开“添加/删除程序”,弹出“添加/删除程序”窗口。

2、单击窗口中的“添加/删除Windows组件”图标,弹出“Windows组件向导”对话框。

添加/删除程序

3、选中“向导”中的“应用程序服务器”复选框。单击“详细信息”按钮,弹出“应用程序服务器”对话框。

添加/删除Windows组件

4、选择需要的组件,其中“Internet信息服务(IIS)”和“应用程序服务器控制台”是必须选中的。选中“Internet信息服务(IIS)”后,再单击“详细信息”按钮,弹出“Internet信息服务(IIS)”对话框。

5、选中“Internet信息服务管理器”和“万维网服务”。并且选中“万维网服务”后,再单击“详细信息”按钮,弹出“万维网服务”对话框。

6、其中的“万维网服务”必须选中。如果想要服务器支持ASP,还应该选中“ActiveServerPages”。逐个单击“确定”按钮,关闭各对话框,直到返回图1的“Windows组件向导”对话框。

7、单击“下一步”按钮,系统开始IIS的安装,这期间可能要求插入WindowsServer2023安装盘,系统会自动进行安装工作。

8、安装完成后,弹出提示安装成功的对话框,单击“确定”按钮就完成了IIS的安装。

友情提示:如果想要同时装入FTP服务器,在“Internet信息服务(IIS)”对话框中应该把“文件传输协议(FTP)服务”的复选框也选中。

在IIS中创建Web网站

打开“Internet信息服务管理器”,在目录树的“网站”上单击右键,在右键菜单中选择“新建→网站”,弹出“网站创建向导”:

网站描述就是网站的名字,它会显示在IIS窗口的目录树中,方便管理员识别各个站点。本例中起名为“枝叶的网站”。

网站IP网站上,这个选项适合于服务器中只有这一个网站的情况。也可以从下拉式列表框中选择一个IP地址(下拉式列表框中列出的是本机已配置的IP地址,如果没有,应该先为本机配置IP地址,再选择。)

TCP端口:一般使用默认的端口号80,如果改为其它值,则用户在访问该站点时必须在地址中加入端口号。

主机头:如果该站点已经有域名,可以在主机头中输入域名。

主目录路径是网站根目录的位置,可以用“浏览”按钮选择一个文件夹作为网站的主目录。

网站访问权限是限定用户访问网站时的权限,“读取”是必需的,“运行脚本”可以让站点支持ASP,其它权限可根据需要设置。

单击“下一步”,弹出“完成向导”对话框,就完成了新网站的创建过程,在IIS中可以看到新建的网站。把做好的网页和相关文件复制到主目录中,通常就可以访问这个网站了。

访问网站的方法是:如果在本机问,可以在浏览器的地址栏中输入“

”;如果在网络中其它计算机问,可以在浏览器的地址栏中输入“

说明:如果网站的TCP端口不是80,在地址中还需加上端口号。假设TCP端口设置为8080,则访问地址应写为“

”或“

网站的基本配置

如果需要修改网站的参数,可以在“网站名字”上单击右键,在右键菜单中选择“属性”,可以打开“网站属性”对话框。

1、“网站”标签

“网站标识”:可以设置网站名字、IP地址、端口号。单击“高级”按钮可以设置主机头名。

2、“主目录”标签

在本地路径中可以设置主目录的路径名和访问权限。

3、“文档”标签

默认文档是指访问一个网站时想要打开的默认网页,这个网页通常是该网站的主页。如果没有启用默认文档或网站的主页文件名不在默认文档列表中,则访问这个网站时需要在地址中指明文件名。

默认文档列表中最初只有4个文件名:Default.htm、Default.asp、index.htm和Default.aspx。我用“添加”按钮加入了一个index.asp,并用“上移”按钮把它移到了顶部。这主要是因为我的网站的主页名为“index.asp”,所以应该把它加入列表,至于是否位于列表顶部倒是无关紧要的。

经过以上配置,一个Web网站就可以使用了。把制作好的网页复制到网站的主目录中,网站主页的文件名应该包含在默认文档中。打开浏览器,在地址栏中输入“

虚拟目录

虚拟目录可以使一个网站不必把所有内容都放置在主目录内。虚拟目录从用户的角度来看仍在主目录之内,但实际位置可以在计算机的其它位置,而且虚拟目录的名字也可以与真实目录不同。如:

图中用户看到的一个位于主目录下的文件夹“pic”,它的真实位置在服务器的“D:myimage”处,而主目录位于“C:mywww”处。假设该网站的域名是“www.abc.com”,则用户访问“

文件1”时,访问的实际位置是服务器的“D:myimage文件1”,所以虚拟目录的真实名字和位置对用户是不可知的。

创建虚拟目录的方法:

打开Internet信息服务窗口,在想要创建虚拟目录的Web站点上单击右键,选择“新建”→“虚拟目录”。弹出虚拟目录创建向导:

别名是映射后的名字,即客户访问时的名字;

路径:服务器上的真实路径名,即虚拟目录的实际位置;

访问权限:指客户对该目录的访问权限。

单击“下一步”按钮,弹出完成对话框,虚拟目录就建立成功了。把相关文件复制到虚拟目录中,用户就可以按照虚拟的树形结构访问到指定文件了。

通常虚拟目录的访问权限、默认文档等都继承自主目录,如果需要修改,可在“Internet信息服务管理器”中的虚拟目录上单击右键,选择“属性”,就可以修改虚拟目录的参数设置了。

1、双击IIS图标,运行IIS服务器。

2、IIS打开后,选中网站,然后右键,在弹出的菜单中,选择新建,选择网站。

3、在弹出的窗口中,直接点击下一步。

4、输入网站描述,并点击下一步。

5、默认,并点击下一步。

6、选择网站存放路径。

7、写入此项不选,其他全选,并点击下一步。

8、点击完成即可。

要准备以下的资料

1.注册域名。更好能和社团有点关联

2.选择网站系统。例如wordpress,zblog,emblog等都可以。

3.选择云服务器,例如阿里或者腾讯等

4.解析域名到服务器

5.发布博客系统到云主机

以上步骤还是需要一些知识的。

以下是在linux服务器中搭建网站的过程了,安全性高,系统资源也很充足。

步骤方法

一、先去域名注册商那里注册一个自己喜欢的域名,常用的域名注册商有:万网、新网、西部数码等;

二、需要选购租用一台服务器,考虑到是个人博客可以先选择使用虚拟主机;如果使用国内服务器或者虚拟主机的话,需要对域名进行备案,备案流程比较简单,可以联系服务器商代备即可。

三、网站程序,这里是一个网站的核心。个人博客网站建议选用网站博客程序,常用的有WordPress、zblog等。

四、对自己选好的网站程序本地搭建成网站,然后进行修改调整,使其成为自己专属的博客网站,本地搭建可以网上搜一下本地环境安装包来配置本地环境;再按照所用程序官方教程进行安装使用。

五、网站调整好以后,需要通过FTP等工具把网站程序上传到服务器;然后在服务器绑定自己注册的域名;再去域名服务商那里对域名解析,解析到自己服务器上。

六、等待域名解析生效后,在浏览器地址栏输入域名就可以访问自己的博客了,至此,网站建设完成。老魏为此写过云服务器手动建站等多篇教程,看完有疑问可以问,看到了就回答。

网站搭建流程如何做一个网站!web服务器搭建网站!中小型网站

首先你肯定要有域名和服务器

其次根据你想做的网站去找程序

程序有很多

php,java,asp等等

然后服务器搭建环境

再把代码部署上配置下信息

希望能帮助到你

web服务器

WEB服务器

编辑本段什么是WEB服务器

WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。

(1)应用层使用HTTP协议。

(2)HTML文档格式。

(3)浏览器统一资源定位器(URL)。

WWW代表万维网的意思

WWW 是 Internet 的多媒体信息查询工具,是 Internet 上近年才发展起来的服务,也是发展最快和目前用的最广泛的服务。正是因为有了WWW工具,才使得近年来 Internet 迅速发展,且用户数量飞速增长。

1、WWW简介

WWW 是 World Wide Web (环球信息网)的缩写,也可以简称为 Web,中文名字为“万维网”。它起源于1989年3月,由欧洲量子物理实验室 CERN(the European Laboratory for Particle Physics)所发展出来的主从结构分布式超媒体系统。通过万维网,人们只要通过使用简单的方法,就可以很迅速方便地取得丰富的信息资料。乱源败 由于用户在通过 Web 浏览器访问信息资源的过程中,无需再关心一些技术性的细节,而且界面非常友好,因而 Web 在Internet 上一推出就受到了热烈的欢迎,走红全球,并迅速得到了爆炸性的发展。

2、WWW的发展和特点

长期以来,人们只是通过传统的媒体(如电视、报纸、杂志和广播等)获得信息。但随着计算机网络的发展,人们想要获取信息,已不再满足于传统媒体那种单方面传输和获取的方式,而希望有一种主观的选择性。现在,哗颤网络上提供各种类别的数据库系统,如文献期刊、产业信息、气象信息、论文检索等等。由于计算机网络的发展,信息的获取变得非常及时、迅速和便捷。

到了1993年,WWW 的技术有了突破性的进展,它解决了远程信息服务中的文字显示、数据连接以及图像传递的问题,使得 WWW 成为 Internet 上最为流行的信息传播方式。 现在,Web 服务器成为 Internet 上更大的计算机群,Web 文档之多、链接的网络之广,令人难以想象。可以说,Web 为 Internet 的普及迈出了开创性的一步,是近年来 Internet 上取得的最激动人心的成就。

WWW 采用的是客户/服务器结构,其作用是整理和储存各种WWW资源,并响应客户端软件的请求,把客户所需的资源传送到 Windows 95(或Windows98)、Windows NT、UNIX 或 Linux 等平台上。

使用最多的 web server 服务器软件 有两个:微软的信息服务器(iis),和Apache。

通俗的讲,Web服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。确切一点,你可以说:Web服务器专门处理HTTP请求(request),但是应用程序服务器是通过很多协议来为应用程序提供(serves)商业逻辑(business logic)。

Web服务器可以解析(handles)HTTP协议。当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应(response),例如送回一个HTML页面。为了处理一个请求(request),Web服务器可以响应(response)一个静态页面或图片,进行页面跳转(redirect),或者把动态响应(dynamic response)的产生委托(delegate)给一些其它的程序例如CGI脚本,P(JavaServer Pages)脚本,servlets,ASP(Active Server Pages)脚本,服务器端(server-side)JavaScript,或者一些其它的服务器端(server-side)技术。无论它们(译者注:脚本)的目的如何,这些服务器端(server-side)的程序通常产生一个HTML的响应(response)来让浏览器可以浏览。

要知道,Web服务器的代理模裂迹型(delegation model)非常简单。当一个请求(request)被送到Web服务器里来时,它只单纯的把请求(request)传递给可以很好的处理请求(request)的程序(译者注:服务器端脚本)。Web服务器仅仅提供一个可以执行服务器端(server-side)程序和返回(程序所产生的)响应(response)的环境,而不会超出职能范围。服务器端(server-side)程序通常具有事务处理(transaction processing),数据库连接(database connectivity)和消息(messaging)等功能。

虽然Web服务器不支持事务处理或数据库连接池,但它可以配置(employ)各种策略(strategies)来实现容错性(fault tolerance)和可扩展性(scalability),例如负载平衡(load balancing),缓冲(caching)。集群特征(clustering—features)经常被误认为仅仅是应用程序服务器专有的特征。

应用程序服务器(The Application Server)

根据我们的定义,作为应用程序服务器,它通过各种协议,可以包括HTTP,把商业逻辑暴露给(expose)客户端应用程序。Web服务器主要是处理向浏览器发送HTML以供浏览,而应用程序服务器提供访问商业逻辑的途径以供客户端应用程序使用。应用程序使用此商业逻辑就象你调用对象的一个方法(或过程语言中的一个函数)一样。

应用程序服务器的客户端(包含有图形用户界面(GUI)的)可能会运行在一台PC、一个Web服务器或者甚至是其它的应用程序服务器上。在应用程序服务器与其客户端之间来回穿梭(traveling)的信息不仅仅局限于简单的显示标记。相反,这种信息就是程序逻辑(program logic)。 正是由于这种逻辑取得了(takes)数据和方法调用(calls)的形式而不是静态HTML,所以客户端才可以随心所欲的使用这种被暴露的商业逻辑。

在大多数情形下,应用程序服务器是通过组件(component)的应用程序接口(API)把商业逻辑暴露(expose)(给客户端应用程序)的,例如基于J2EE(Java 2 Platform, Enterprise Edition)应用程序服务器的EJB(Enterprise JavaBean)组件模型。此外,应用程序服务器可以管理自己的资源,例如看大门的工作(gate-keeping duties)包括安全(security),事务处理(transaction processing),资源池(resource pooling), 和消息(messaging)。就象Web服务器一样,应用程序服务器配置了多种可扩展(scalability)和容错(fault tolerance)技术。

例如,设想一个在线商店(网站)提供实时定价(real-time pricing)和有效性(availability)信息。这个站点(site)很可能会提供一个表单(form)让你来选择产品。当你提交查询(query)后,网站会进行查找(lookup)并把结果内嵌在HTML页面中返回。网站可以有很多种方式来实现这种功能。我要介绍一个不使用应用程序服务器的情景和一个使用应用程序服务器的情景。观察一下这两中情景的不同会有助于你了解应用程序服务器的功能。

情景1:不带应用程序服务器的Web服务器

在此种情景下,一个Web服务器独立提供在线商店的功能。Web服务器获得你的请求(request),然后发送给服务器端(server-side)可以处理请求(request)的程序。此程序从数据库或文本文件(flat file,译者注:flat file是指没有特殊格式的非二进制的文件,如properties和XML文件等)中查找定价信息。一旦找到,服务器端(server-side)程序把结果信息表示成(formulate)HTML形式,最后Web服务器把会它发送到你的Web浏览器。

简而言之,Web服务器只是简单的通过响应(response)HTML页面来处理HTTP请求(request)。

情景2:带应用程序服务器的Web服务器

情景2和情景1相同的是Web服务器还是把响应(response)的产生委托(delegates)给脚本(译者注:服务器端(server-side)程序)。然而,你可以把查找定价的商业逻辑(business logic)放到应用程序服务器上。由于这种变化,此脚本只是简单的调用应用程序服务器的查找服务(lookup service),而不是已经知道如何查找数据然后表示为(formulate)一个响应(response)。 这时当该脚本程序产生HTML响应(response)时就可以使用该服务的返回结果了。

在此情景中,应用程序服务器提供(serves)了用于查询产品的定价信息的商业逻辑。(服务器的)这种功能(functionality)没有指出有关显示和客户端如何使用此信息的细节,相反客户端和应用程序服务器只是来回传送数据。当有客户端调用应用程序服务器的查找服务(lookup service)时,此服务只是简单的查找并返回结果给客户端。

通过从响应产生(response-generating)HTML的代码中分离出来,在应用程序之中该定价(查找)逻辑的可重用性更强了。其他的客户端,例如收款机,也可以调用同样的服务(service)来作为一个店员给客户结帐。相反,在情景1中的定价查找服务是不可重用的因为信息内嵌在HTML页中了。

总而言之,在情景2的模型中,在Web服务器通过回应HTML页面来处理HTTP请求(request),而应用程序服务器则是通过处理定价和有效性(availability)请求(request)来提供应用程序逻辑的。

警告(Caveats)

现在,XML Web Services已经使应用程序服务器和Web服务器的界线混淆了。通过传送一个XML有效载荷(payload)给服务器,Web服务器现在可以处理数据和响应(response)的能力与以前的应用程序服务器同样多了。

另外,现在大多数应用程序服务器也包含了Web服务器,这就意味着可以把Web服务器当作是应用程序服务器的一个子集(subset)。虽然应用程序服务器包含了Web服务器的功能,但是开发者很少把应用程序服务器部署(deploy)成这种功能(capacity)(译者注:这种功能是指既有应用程序服务器的功能又有Web服务器的功能)。相反,如果需要,他们通常会把Web服务器独立配置,和应用程序服务器一前一后。这种功能的分离有助于提高性能(简单的Web请求(request)就不会影响应用程序服务器了),分开配置(专门的Web服务器,集群(clustering)等等),而且给更佳产品的选取留有余地。

编辑本段大型WEB服务器

在UNIX和LINUX平台下使用最广泛的免费HTTP服务器是W3C、NCSA和APACHE服务器,而Windows平台NT/2023/2023使用IIS的WEB服务器。在选择使用WEB服务器应考虑的本身特性因素有:性能、安全性、日志和统计、虚拟主机、代理服务器、缓冲服务和集成应用程序等,下面介绍几种常用的WEB服务器。

Microsoft IIS

Microsoft的Web服务器产品为Internet Information Server (IIS), IIS 是允许在公共Intranet或Internet上发布信息的Web服务器。IIS是目前更流行的Web服务器产品之一,很多著名的网站都是建立在IIS的平台上。IIS提供了一个图形界面的管理工具,称为 Internet服务管理器,可用于监视配置和控制Internet服务。

IIS是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和TP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。它提供ISAPI(Intranet Server API)作为扩展Web服务器功能的编程接口;同时,它还提供一个Internet数据库连接器,可以实现对数据库的查询和更新。

IBM WebSphere

WebSphere Application Server 是 一 种功能完善、开放的Web应用程序服务器,是IBM电子商务计划的核心部分,它是基于 Java 的应用环境,用于建立、部署和管理 Internet 和 Intranet Web 应用程序。 这一整套产品进行了扩展,以适应 Web 应用程序服务器的需要,范围从简单到高级直到企业级。

WebSphere 针对以 Web 为中心的开发人员,他们都是在基本 HTTP服务器和 CGI 编程技术上成长起来的。IBM 将提供 WebSphere 产品系列,通过提供综合资源、可重复使用的组件、功能强大并易于使用的工具、以及支持 HTTP 和 IIOP 通信的可伸缩运行时环境,来帮助这些用户从简单的 Web 应用程序转移到电子商务世界。

BEA WebLogic

BEA WebLogic Server 是一种多功能、基于标准的web应用服务器,为企业构建自己的应用提供了坚实的基础。各种应用开发、部署所有关键性的任务,无论是集成各种系统和数据库,还是提交服务、跨 Internet 协作,起始点都是 BEA WebLogic Server。由于 它具有全面的功能、对开放标准的遵从性、多层架构、支持基于组件的开发,基于 Internet 的企业都选择它来开发、部署更佳的应用。

BEA WebLogic Server 在使应用服务器成为企业应用架构的基础方面继续处于领先地位。BEA WebLogic Server 为构建集成化的企业级应用提供了稳固的基础,它们以 Internet 的容量和速度,在连网的企业之间共享信息、提交服务,实现协作自动化。

APACHE

apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。它源于NCSAhttpd服务器,当NCSA WWW服务器项目停止后,那些使用NCSA WWW服务器的人们开始交换用于此服务器的补丁,这也是apache名称的由来(pache 补丁)。世界上很多著名的网站都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。

Tomcat

Tomcat是一个开放源代码、运行servlet和P Web应用软件的基于Java的Web应用软件容器。Tomcat Server是根据servlet和P规范进行执行的,因此我们就可以说Tomcat Server也实行了Apache-Jakarta规范且比绝大多数商业应用软件服务器要好。

Tomcat是Java Servlet 2.2和JavaServer Pages 1.1技术的标准实现,是基于Apache许可证下开发的自由软件。Tomcat是完全重写的Servlet API 2.2和P 1.1兼容的Servlet/P容器。Tomcat使用了erv的一些代码,特别是Apache服务适配器。随着Catalina Servlet引擎的出现,Tomcat第四版号的性能得到提升,使得它成为一个值得考虑的Servlet/P容器,因此目前许多WEB服务器都是采用Tomcat。

编辑本段小型WEB服务器

【 micro_httpd – really all HTTP server】

特点:

* 支持安全的 .. 上级目录过滤

* 支持通用的MIME类型

* 支持简单的目录

* 支持目录列表

* 支持使用 index.html 作为首页

* Trailing-slash redirection

* 程序总共代码才200多行

这个httpd适合学习简单的Web Server编写学习,因为它只有一个简单的框架,只能够处理简单的静态页,可以考虑用来放静态页。

官方地址:

下载地址:

micro_httpd_12dec2023.tar.gz

【 mini_httpd – all HTTP server 】

特点:

* 支持GET、HEAD、POST方法

* 支持CGI功能

* 支持基本的验证功能

* 支持安全 .. 上级目录功能

* 支持通用的MIME类型

* 支持目录列表功能

* 支持使用 index.html, index.htm, index.cgi 作为首页

* 支持多个根目录的虚拟主机

* 支持标准日志记录

* 支持自定义错误页

* Trailing-slash redirection

mini_httpd 也是相对比较适合学习使用,大体实现了一个Web Server的功能,支持静态页和CGI,能够用来放置一些个人简单的东西,不适宜投入生产使用。

官方地址:

下载地址:

【 thttpd – tiny/turbo/throttling HTTP server 】

thttpd中是一个简单,小型,轻便,快速和安全的http服务器.

简单:它能够支持HTTP/1.1协议标准,或者超过了更低水平

小巧:它具有非常少的运行时间,因为它不fork子进程来接受新请求,并且非常谨慎的分配内存(性能对比表:

benchmarks.html)

便携:它能够在大部分的类Unix系统上运行,包括FreeBSD, SunOS 4, Solaris 2, BSD/OS, Linux, OSF等等

快速:它的速度要超过主流的Web服务器(Apache, NCSA, Netscape),在高负载情况下,它要快的多

安全:它努力的保护主机不受到攻击,不中断服务器

thttpd 类似于lighttpd,对于并发请求不使用fork()来派生子进程处理,而是采用多路复用(Multiplex)技术来实现。因此效能很好。同时它还有一个特点就是基于URL的文件流量限制,这对于下载的流量控制而言是非常方便的。象Apache就必须使用插件实现,效率较thttpd低。

thttpd跟lighttpd类似,适合静态资源类的服务,比如图片、资源文件、静态HTML等等的应用,性能应该比较好,同时也适合简单的CGI应用的场合。

官方地址:

下载地址:

thttpd-2.25b.tar.gz

【 lighttpd – light footprint + httpd = LightTPD 】

Lighttpd是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。

lighttpd 是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能,而Apache之所以流行,很大程度也是因为功能丰富,在lighttpd上很多功能都有相应的实现了,这点对于apache的用户是非常重要的,因为迁移到lighttpd就必须面对这些问题。

实用起来lighttpd确实非常不错,apache主要的问题是密集并发下,不断的fork()和切换,以及较高(相对于 lighttpd而言)的内存占用,使系统的资源几尽枯竭。而lighttpd采用了Multiplex技术,代码经过优化,体积非常小,资源占用很低,而且反应速度相当快。

利用apache的rewrite技术,将繁重的cgi/fastcgi任务交给lighttpd来完成,充分利用两者的优点,现在那台服务器的负载下降了一个数量级,而且反应速度也提高了一个甚至是2个数量级!

lighttpd 适合静态资源类的服务,比如图片、资源文件、静态HTML等等的应用,性能应该比较好,同时也适合简单的CGI应用的场合。

官方地址:

下载地址:

download/lighttpd-1.4.16.tar.gz

【 SHTTPD – Simple HTTPD 】

Shttpd是另一个轻量级的web server,具有比thttpd更丰富的功能特性,支持CGI, SSL, cookie, MD5认证, 还能嵌入(embedded)到现有的软件里。最有意思的是不需要配置文件! 由于shttpd可以嵌入其他软件,因此可以非常容易的开发嵌入式系统的web server,官方网站上称shttpd如果使用uclibc/dielibc(libc的简化子集)则开销将非常非常低。

特点:

* 小巧、快速、不膨胀、无需安装、简单的40KB的exe文件,随意运行

* 支持GET, POST, HEAD, PUT, DELETE 等方法

* 支持CGI, SSL, SSI, MD5验证, resumed download, aliases, inetd模式运行

* 标准日志格式

* 非常简单整洁的嵌入式API

* dietlibc friendly. NOT that friendly to the uClibc (*)

* 容易定制运行在任意平台:Windows, QNX, RTEMS, UNIX (*BSD, Solaris, Linux)

由于shttpd可以轻松嵌入其他程序里,因此shttpd是较为理想的web server开发原形,开发人员可以基于shttpd开发出自己的webserver!

官方网站:

下载地址:

你说详细点啊。。晕死这样也行

关于编写一个简单的web服务器的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 编写简易web服务器教程 (编写一个简单的web服务器)