写点什么

web 服务器

作者:初学者
  • 2022-11-08
    河北
  • 本文字数:7142 字

    阅读完需:约 23 分钟

一 什么是 web 服务器

二 web 服务器介绍

三 web 服务器发展趋势

四 大小型 web 服务器的区别

五 web 服务器安全


一 什么是 web 服务器

Web 服务器是指驻留于因特网上某种类型计算机的程序。当 Web 浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件发送到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文正在上传…重新上传取消 WEB 服务器件类型)。服务器使用 HTTP(超文本传输协议)进行信息交流,这就是人们常把它们称为 HTTPD 服务器的原因。

Web 服务器不仅能够存储信息,还能在用户通过 Web 浏览器提供的信息的基础上运行脚本和程序。

二 web 服务器介绍

Web 服务器是可以向发出请求的浏览器提供文档的程序。

1、服务器是一种被动程序:只有当 Internet 上运行在其他计算机中的浏览器发出请求时,服务器才会响应。

2 、最常用的 Web 服务器是 Apache 和 Microsoft 的 Internet 信息服务器(Internet Information Server,ⅡS)。

3、Internet 上的服务器也称为 Web 服务器,是一台在 Internet 上具有独立 IP 地址的计算机,可以向 Internet 上的客户机提供 WWW、Email 和 FTP 等各种 Internet 服务。

三 web 服务器发展趋势

目前,Web 服务器的发展有三个主要趋势:

1.从 HTML 到 XML(Extensible Markup Language-可扩展标记语言)   

HTML 被称为“第一代 Web 语言”,如前面的介绍,HTML 作为 Web 的开发语言,对 Web 应用的发展起到了关键性的作用。但是 HTML 有一个致命的缺点:只适合于人与计算机的交流,不适合计算机与计算机的交流。HTML 通过大量的标记来定义文档内容的表现方式,它仅仅描述了应如何在 Web 浏览器页面上布置文字、图形,并没有对 Internet 的信息含义本身进行描述,而信息又是 Web 应用中最重要的内容。通过 HTML 表现出来的文字、图形内容很容易被人理解,但却不利于计算机程序去理解。另外,HTML 的另一个问题就是它的标记集合是固定的,用户不能根据自己的需要增加标记;而且各种浏览器的规格不尽相同,要使我们用 HTML 做的网页能够被所有浏览器正常显示,我们只能够使用 W3C(万维网协会)规定的标记来创建网页。

正如前面所说,Web 服务器向 Web 浏览器提供的信息都是来自有一定结构的数据库,在数据库里,为了检索和管理的方便,信息按照它本身的意义(如姓名、年龄、工作单位等)被存放在相应的字段里,一旦这些数据被调出来,经过 CGI、ASP、JSP、PHP 等转换成 HTML 后,其原来的意义无法转移到 HTML 标记中来,用户也就无法按照信息本来的意义去阅读。并且,由于操作系统以及数据库的不同,不同的系统及应用层面之间要想互相理解对方的数据格式是相当困难的。这就需要一种新技术或标准能够将最初保存在数据库服务器中的原始数据结构在不同的系统层面共享。这种新技术就是 XML。

使用 XML 可以解决上述的难题。W3C 对 XML 作了如下描述:“XML 描述了一类被称为 XML 文档的数据对象,并部分描述了处理它们的计算机程序的行为。XML 是 SGML 的一个应用实例。从结构上说,XML 文档遵从 SGML 文档标准。”同 HTML 一样,XML 也是一种基于文本的标记语言,都是从 SGML(Standard Generalize Markup Language,标准通用标记语言)发展而来,二者的不同在于:XML 可以让我们根据要表现的文档,自由地定义标记来表现具有实际意义的文档内容,例如,我们可以定义〈文档名称〉〈/文档名称〉这样具有实际意义的标记。而且 XML 不像 HTML 那样具有固定的标记集合,它实际上是一种定义语言的语言,也就是说使用 XML 的用户可以定义无穷的标记来描述文档中的任何数据元素,将文档的内容组织成丰富的完整的信息体系。总起来说,XML 具有四大特点:便于存储的数据格式、可扩展性、高度结构化以及方便的网络传输,这些特点为我们创建开放、高效、可扩展、个性化的 Web 应用提供了一个崭新的起点。

2.从有线到无线

电子商务正在从台式机向着更为广泛的无线设备发展,Cahners In-Stat 市场分析家预测,世界范围内的无线用户的人数将会从 2000 年的 2.71 亿增加到 2004 年的 13 亿。Aberdeen 集团的研究主任 Darcy Fowkes 认为,采用无线方式进行电子商务的优势并不仅仅在于方便,它还可以节约公司的财力,而且,移动办公能使工作更加高效。

然而,由于多种无线网络类型、标记语言、协议和无线设备并存的复杂情况,使得网络内容和数据转换成能够被无线设备所识别的格式并不容易。目前,许多企业都在致力于开发能够把应用程序以及互联网内容扩展到无线设备上的产品。

例如,IBM 新版本的 WebSphere Transcoding Publisher 3.5 增加和改进了许多新的特性,可以将企业内部网上的数据翻译到多种无线设备上。该版本中新的特性包括对更多的无线设备、数据格式的支持,以及语言翻译功能。它基于 Java 架构,能把用 HTML 和 XML 等标记语言编写的应用程序和数据转换成 WML、HDML(Handheld Device Markup Language)和 iMode 等无线设备所能识别的格式,这样,通过手持设备就可以访问互联网上的信息。

无线设备厂商 Mobilize 也推出了 Mobilize Commerce 产品,帮助企业进入无线网络。该软件可以通过无线连接的方式访问企业的内部系统,远程地实现订单发送,并进行确认。Mobilize Commerce 可以充分利用 XML 对信息进行格式转换,以适合于无线设备,这些无线设备包括笔记本电脑、个人数字助理、无线电话、网络电话和双向寻呼等。

3.从无声到有声

世界上现在有十亿个电话终端,有超过 2 亿的移动电话。而就人自身的交流习惯来看,人们也更愿意利用听和说的口头的方式进行交流。

目前,文本语音转换器(TTS,Text to Speech)的研究工作已经取得了很大的进步,实现了自动的语言分析理解,并允许 TTS 的使用者增加更多的韵律、音调在讲话中,使 TTS 系统的发声更接近人声。在自动语音识别系统(ASR)领域里,自动语音识别系统在从整个词的模仿匹配,向音素层次的识别系统方向发展。自动语音识别系统的词汇表由一个基于声音片断的字母表构成,而且这种词汇表是受不同语言限制的。基于这种方式,在一个宽广的声音行列里,讲话能被识别系统发现和挑拣出来,并加以识别。并且,在识别一个词的时候,每一个音素将从系统的输入中挑拣出来,拼接组合后与已经有的音素和词语模板进行比较,来产生需要的模板。音素的识别大大减轻了 ASR 对讲话者的依赖性,并且使得它非常容易去建立大型的和容易修改的语音识别字典,从而满足不同应用市场的需求。

Web 语音发展的另一方面是 VoiceXML(Voice Extensible Markup Language-语音可扩展标记语言)的进展。VoiceXML 的主要目标是要将 Web 上已有的大量应用、丰富的内容,让交互式语音界面也能够全部享受。Web 服务器处理一个来自客户端应用的请求,这一请求经过了 VoiceXML 解释程序和 VoiceXML 解释程序语境处理,作为响应,服务器产生出 VoiceXML 文件,在回复当中,要经过 VoiceXML 解释程序的处理。VoiceXML 1.0 规范基于 XML,为语音和电话应用的开发者、服务提供商和设备制造商提供了一个智能化的 API。VoiceXML 的标准化将简化 Web 上具有语音响应服务的个性化界面的创建,使人们能够通过语音和电话访问网站上的信息和服务,像今天通过 CGI 脚本一样检索中心数据库,访问企业内部网,制造新的语音访问设备。VoiceXML 的执行平台上面加载了相应的软件和硬件,例如,ASR、TTS,从而实现语音的识别以及文本和语音之间的转化。2000 年 5 月 23 日,W3C 接受了语音可扩展标记语言 VoiceXML 1.0 作为实例。

四 大小型 web 服务器的区别

大型 WEB 服务器

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

Microsoft ⅡS

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

ⅡS 是一种 Web 服务组件,其中包括 Web 服务器、FTP 服务器、NNTP 服务器和 SMTP 服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。它提供 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 和 ⅡOP 通信的可伸缩运行时环境,来帮助这些用户从简单的 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 和 JSP Web 应用软件的基于 Java 的 Web 应用软件容器。Tomcat Server 是根据 servlet 和 JSP 规范进行执行的,因此我们就可以说 Tomcat Server 也实行了 Apache-Jakarta 规范且比绝大多数商业应用软件服务器要好。

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

小型 WEB 服务器

【nginx】 

* 支持通用语言接口,如 php、python、perl 等

* 支持正向和方向代理、虚拟主机、url 重写、压缩传输等

* nginx 的模块都是静态编译的,对 fcgi 的支持非常好,在处理链接的的方式上 nginx 支持 epoll。

【 micro_httpd - really small HTTP server】

特点:

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

* 支持通用的 MIME 类型

* 支持简单的目录

* 支持目录列表

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

* Trailing-slash redirection

* 程序总共代码才 200 多行

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

【 mini_httpd - small 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 子进程来接受新请求,并且非常谨慎的分配内存。

便携:它能够在大部分的类 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 应用的场合。

【 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 应用的场合。

【 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,UNⅨ (*BSD,Solaris,Linux)

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

五 web 服务器安全

1.加强 Web 服务器的安全设置。

以 Linux 为操作平台的 Web 服务器的安全设置策略,能够有效降低服务器的安全隐患,以确保 Web 服务器的安全性,主要包括:登录有户名与密码的安全设置、系统口令的安全设置、BIOS 的安全设置、使用 SSL 通信协议、命令存储的修改设置、隐藏系统信息、启用日志记录功能以及设置 Web 服务器有关目录的权限等[3]。

2.加强互联网的安全防范。

Web 服务器需要对外提供服务,它既有域名又有公网的网址,显然存在一些安全隐患。所以,可给予 Web 服务器分配私有的地址,并且运用防火墙来做 NAT 可将其进行隐藏;同时因为一些攻击来源于内网的攻击,比如把内网计算机和 Web 服务器存放在相同的局域网之内,则在一定程度上会增加很多安全隐患,所以必须把它划分为不同的虚拟局域网,运用防火墙的地址转换来提供相互间的访问,这样就大大提高了 Web 服务器的安全性和可靠性;把 Web 服务器连接至防火墙的 DMZ 端口,将不适宜对外公布的重要信息的服务器放于内部网络,进而在提供对外的服务的同时,可以最大限度地保护好内部网络[4]。

3.网络管理员要不断加强网络日常安全的维护与管理。

要对管理员用户名与密码定期修改;要对 Web 服务器系统的新增用户情况进行定时核对,并且需要认真仔细了解网络用户的各种功能;要及时给予更新 Web 服务器系统的杀毒软件以及病毒库,必要时可针对比较特殊的病毒给予安装专门杀毒的程序,同时要定期查杀 Web 服务器的系统病毒,定期查看 CPU 的正常工作使用状态、后台工作进程以及应用程序,假若发现异常情况需要及时给予妥当处理[5];因为很多木马与病毒均是运用系统漏洞来进行攻击的,所以需要不断自动更新 Web 服务器系统,以及定期扫描 Web 服务器系统的漏洞。

Web 服务器现在已经成为了病毒、木马的重灾区。不但企业的门户网站被篡改、资料被窃取,而且还成为了病毒与木马的传播者。有些 Web 管理员采取了一些措施,虽然可以保证门户网站的主页不被篡改,但是却很难避免自己的网站被当作肉鸡,来传播病毒、恶意插件、木马等等。这很大一部分原因是管理员在 Web 安全防护上太被动。他们只是被动的防御。为了彻底提高 Web 服务器的安全,Web 安全要主动出击。

发布于: 刚刚阅读数: 3
用户头像

初学者

关注

总以为清者自清 却忘了人言可畏 2022-11-03 加入

我是一名网络运维专业人员有两年经验

评论

发布
暂无评论
web服务器_网络_初学者_InfoQ写作社区