工具和中间件——软件服务器的前世今生

目录

一、前言

二、从历史上的服务器到今天的服务器

三、web服务器和应用服务器

3.1 Web服务器

3.2 应用服务器

3.3 小结

四、进一步说明

五、小结


一、前言

在程序员的日常工作中,少不了遇到服务器这个概念,特别是服务端开发的程序员。服务器从概念上可以理解为硬件服务器,也可以理解为软件服务器,硬件服务器,不用解释,人人都懂,就是一台高性能的计算机;软件服务器包括两种:web服务器和应用服务器。软件服务器是本文的重点,本文分为三个部分:“从历史上的服务器到今天的服务器”“web服务器和应用服务器”“进一步说明”。

二、从历史上的服务器到今天的服务器

世界上最早的软件服务器是Apache服务器(注:今天的Apache既是一个集团名,也是一个服务器名,apache就是靠服务器发家的),它是一个web服务器(静态服务器),由于其本身处理静态页面出色而处理动态内容不足,所以一般将apache+tomcat(一个常用的应用服务器)一起使用,服务于javaweb开发。

今天,软件服务器分为web服务器和应用服务器(还有一类数据库服务器),因为一般使用web服务器来处理http请求,即静态页面内容,而JSP,ASP,PHP等动态内容交由应用服务器处理,所以web服务器又被称为HTTP服务器或静态服务器,应用服务器又被称为动态服务器。

三、web服务器和应用服务器

如何理解与区分web服务器和应用服务器,百度百科上的定义太专业,不便于读者理解,这里略去,仅表述我的理解。

3.1 Web服务器

理解WEB服务器,首先要理解什么是WEB?

WEB表现为三种形式,即超文本(hypertext)、超媒体(hypermedia)和超文本传输协议(HTTP),你可以简单地理解为你所看到的HTML页面都是WEB的数据元素。

所以,处理这些数据元素的应用软件就叫WEB服务器,如IIS、apache,nginx等。

3.2 应用服务器

理解应用服务器,首先理解什么是应用?

应用服务器全称是应用程序服务器,应用服务器是其简称,所以“应用服务器”中的“应用”二字所指的就是“应用程序”,所以明白了,应用程序有很多,如java应用程序、C#应用程序等。

所以,为这些应用程序提供访问商业逻辑的途径就是应用服务器,如Tomcat、jetty等。

3.3 小结

一般来说,WEB服务器是通用的,而应用服务器是专用的。

以Apache+Tomcat组合举例:Tomcat只处理JAVA应用程序而不能处理ASP或PHP,tocmat作为应用服务器处理动态内容是专用的,专为Java程序所用;而Apache作为WEB服务器(HTTP服务器)处理静态页面,它的信息源是通用的,可以是配置在tomcat中的JAVA应用,也可以是ASPX应用。

软件服务器类型 处理内容 主流服务器举例
web服务器(Http服务器、静态服务器) 处理http请求、静态页面

Apache(免费)、 Nginx(免费)、 IIS(收费)tomcat(免费)

应用服务器(动态服务器) 处理JSP ASP PHP,动态内容 tocmat(免费)、jetty(免费)、jboss(免费)、glassfish(免费)

Websphere(收费)、Web logic(收费)

注意:以上划分只是一个大致的划分,不能绝对精准。最大的争议是关于web服务器和应用服务器的争议,且看第四部分进一步说明。

四、进一步说明

1、关于Apache服务器

Apache是web服务器还是应用服务器?

我的理解:在Web服务器中,Apache是纯粹的Web服务器,经常与Tomcat配对使用。它对HTML页面具有强大的解释能力,但是不能解释嵌入页面内的服务器端脚本代码(JSP/Servlet)。故Apache是纯粹的web服务器,上表中将它划入web服务器中。

2、关于Nginx服务器

纯粹的开源免费web服务器,无争议。

3、关于IIS服务器

(1)IIS是web服务还是应用服务器?

我的理解:微软早期的IIS,就是一个纯粹的Web服务器。后来,它嵌入了ASP引擎,可以解释VBScript和JScript服务器端代码了,这时,它就可以兼作应用服务器。确切地说,它是兼有一点应用服务器功能的Web服务器。所以上表中将IIS划分为web服务器。

(2)关于IIS收费问题?

我的理解:因为IIS是集成于Windows操作系统中的组件,所以合法使用IIS需要购买正版Windows操作系统。

4、关于Tomcat服务器

Tomcat到底是web服务器还是应用服务器?为什么网上有的地方说tomcat是web服务器,有的地方又说tomcat是应用服务器?

我的理解:Tomcat既可以处理http请求(静态页面),也可以处理JSP ASP PHP等动态内容,所以tomcat既是web服务器也是应用服务器,所以说tomcat是web服务器是对的,说tomcat是应用服务器也是对的。故上表中web服务器和应用服务器中均有tomcat。

5、关于Jetty、Jboss、glasfish服务器

纯粹的开源免费应用服务器,无争议。

6、关于Websphere、Web logic服务器

收费的应用服务器,无争议。

附:关于Apache+Tomcat使用:

        Apache是web服务器(静态解析,如HTML),tomcat是java应用服务器(动态解析,如JSP)Tomcat只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行 ,同为服务器,Tomcat的特别之处在于它还是Java的Web容器,能够处理JSP;而Apache一般是与PHP结合,并不能处理JSP。

       Apache常常与Tomcat整合起来使用,Apache处理静态页面,比如Html页面,而Tomcat负责编译处理JSP页面与Servlet。

       Apache是一个Web服务器环境程序,启用他可以作为Web服务器使用,不过只支持静态网页如(ASP,PHP,CGI,JSP)等动态网页的就不行。如果要在Apache环境下运行JSP的话就需要一个解释器来执行JSP网页,而这个JSP解释器就是Tomcat。

五、小结

本文讲述软件服务器的前世今生,全文分为三个部分:“从历史上的服务器到今天的服务器”“web服务器和应用服务器”“进一步说明”,希望帮助初学者理解后端开发的各个服务器的区别,更好的学习与工作。

天天打码,天天进步!

发布了187 篇原创文章 · 获赞 47 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/qq_36963950/article/details/103210625