web server


web server

文章插图
web server【web server】Web Server中文名称叫网页伺服器或web伺服器 。WEB伺服器也称为WWW(WORLD WIDE WEB)伺服器 , 主要功能是提供网上信息浏览服务
基本介绍中文名:网页伺服器或web伺服器
外文名:web server
别称:WWW(WORLD WIDE WEB)伺服器
主要功能:提供网上信息浏览服务
主要产品:kangle、nginx、apache等
名词解释Web Server中文名称叫网页伺服器或web伺服器 。WEB伺服器也称为WWW(WORLD WIDE WEB)伺服器 , 主要功能是提供网上信息浏览服务 。解析Web伺服器可以解析(handles)HTTP协定 。当Web伺服器接收到一个HTTP请求(request) , 会返回一个HTTP回响(response) , 例如送回一个HTML页面 。为了处理一个请求(request) , Web伺服器可以回响(response)一个静态页面或图片 , 进行页面跳转(redirect) , 或者把动态回响(dynamic response)的产生委託(delegate)给一些其它的程式例如CGI脚本 , JSP(JavaServer Pages)脚本 , servlets , ASP(Active Server Pages)脚本 , 伺服器端(server-side)JavaScript , 或者一些其它的伺服器端(server-side)技术 。无论它们(译者注:脚本)的目的如何 , 这些伺服器端(server-side)的程式通常产生一个HTML的回响(response)来让浏览器可以浏览 。web服务通俗的讲 , Web伺服器传送(serves)页面使浏览器可以浏览 , 然而应用程式伺服器提供的是客户端应用程式可以调用(call)的方法(methods) 。确切一点 , 你可以说:Web伺服器专门处理HTTP请求(request) , 但是应用程式伺服器是通过很多协定来为应用程式提供(serves)商业逻辑(business logic) 。主要web server产品kanglekangleweb伺服器(简称:kangle)是一款跨平台、功能强大、安全稳定、易操作的高性能web伺服器和反向代理伺服器软体 。除此:kangle也是一款专为做虚拟主机研发的web伺服器 。实现虚拟主机独立进程、独立身份运行 。用户之间安全隔离 , 一个用户出问题不影响其他用户 。安全支持php、asp、net、java、ruby等多种动态开发语言 。nginxNginx(发音同 engine x)是一款轻量级的Web伺服器/反向代理伺服器及电子邮件(IMAP/POP3)代理伺服器 , 并在一个BSD-like 协定下发行 。由俄罗斯的程式设计师Igor Sysoev所开发 , 供俄国大型的入口网站及搜寻引擎Rambler(俄文:Рамблер)使用 。其特点是占有记忆体少 , 并发能力强 , 事实上nginx的并发能力确实在同类型的网页伺服器中表现较好 , 中国大陆使用nginx网站用户有:新浪、网易、腾讯等 。apacheApache是世界使用排名第一的Web伺服器软体 。它可以运行在几乎所有广泛使用的计算机平台上 , 由于其跨平台和安全性被广泛使用 , 是最流行的Web伺服器端软体之一 。同时Apache音译为阿帕奇 , 是北美印第安人的一个部落 , 叫阿帕奇族 , 在美国的西南部 。也是一个基金会的名称、一种武装直升机等等 。WebServerWeb伺服器可以解析(handles)HTTP协定 。当Web伺服器接收到一个HTTP请求(request) , 会返回一个HTTP回响(response) , 例如送回一个HTML页面 。为了处理一个请求(request) , Web伺服器可以回响(response)一个静态页面或图片 , 进行页面跳转(redirect) , 或者把动态回响(dynamic response)的产生委託(delegate)给一些其它的程式例如CGI脚本 , JSP(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页面中返回 。网站可以有很多种方式来实现这种功能 。我要介绍一个不使用应用程式伺服器的情景和一个使用应用程式伺服器的情景 。观察一下这两中情景的不同会有助于你了解应用程式伺服器的功能 。不带应用程式伺服器的web伺服器在此种情景下 , 一个Web伺服器独立提供线上商店的功能 。Web伺服器获得你的请求(request) , 然后传送给伺服器端(server-side)可以处理请求(request)的程式 。此程式从资料库或文本档案(flat file , 译者注:flat file是指没有特殊格式的非二进制的档案 , 如properties和XML档案等)中查找定价信息 。一旦找到 , 伺服器端(server-side)程式把结果信息表示成(formulate)HTML形式 , 最后Web伺服器把会它传送到你的Web浏览器 。简而言之 , Web伺服器只是简单的通过回响(response)HTML页面来处理HTTP请求(request) 。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)来提供应用程式逻辑的 。警告现在 , XML Web Services已经使应用程式伺服器和Web伺服器的界线混淆了 。通过传送一个XML有效载荷(payload)给伺服器 , Web伺服器现在可以处理数据和回响(response)的能力与以前的应用程式伺服器同样多了 。另外 , 现在大多数应用程式伺服器也包含了Web伺服器 , 这就意味着可以把Web伺服器当作是应用程式伺服器的一个子集(subset) 。虽然应用程式伺服器包含了Web伺服器的功能 , 但是开发者很少把应用程式伺服器部署(deploy)成这种功能(capacity)(译者注:这种功能是指既有应用程式伺服器的功能又有Web伺服器的功能) 。相反 , 如果需要 , 他们通常会把Web伺服器独立配置 , 和应用程式伺服器一前一后 。这种功能的分离有助于提高性能(简单的Web请求(request)就不会影回响用程式伺服器了) , 分开配置(专门的Web伺服器 , 集群(clustering)等等) , 而且给最佳产品的选取留有余地 。The Web serverA Web server handles the HTTP protocol. When the Web server receives an HTTP request, it responds with an HTTP response, such as sending back an HTML page. To process a request, a Web server may respond with a static HTML page or image, send a redirect, or delegate the dynamic response generation to some other program such as CGI scripts, JSPs (JavaServer Pages), servlets, ASPs (Active Server Pages), server-side JavaScripts, or some other server-side technology. Whatever their purpose, such server-side programs generate a response, most often in HTML, for viewing in a Web browser.Understand that a Web server's delegation model is fairly simple. When a request comes into the Web server, the Web server simply passes the request to the program best able to handle it. The Web server doesn't provide any functionality beyond simply providing an environment in which the server-side program can execute and pass back the generated responses. The server-side program usually provides for itself such functions as transaction processing, database connectivity, and messaging.While a Web server may not itself support transactions or database connection pooling, it may employ various strategies for fault tolerance and scalability such as load balancing, caching, and clustering—features oftentimes erroneously assigned as features reserved only for application servers. To summarize, a Web server simply processes HTTP requests by responding with HTML pages.