一、前言
二、从历史上的服务器到今天的服务器
世界上最早的软件服务器是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应用。
四、进一步说明
4.1 各种具体服务器
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服务器
Websphere Weblogic都是收费的应用服务器,无争议。
4.2 Apache服务器和Tomcat服务器的区别与联系
Apache定义:是C语言实现的,专门用来提供HTTP服务。
特性:简单、速度快、性能稳定、可配置(代理)
1、主要用于解析静态文本,并发性能高,侧重于HTTP服务;
2、支持静态页(HTML),不支持动态请求如:CGI、Servlet/JSP、PHP、ASP等;
3、具有很强的可扩展性,可以通过插件支持php,还可以单向Apache连接Tomcat实现连通;
4、Apache是世界使用排名第一的Web服务器。
Tomcat定义:是Java开发的一个符合JavaEE的Servlet规范的JSP服务器(Servlet容器),是 Apache 的扩展。
特性:免费的Java应用服务器
1、主要用于解析JSP/Servlet,侧重于Servlet引擎;
2、支持静态页,但效率没有Apache高;支持Servlet、JSP请求;
3、Tomcat本身也内置了一个HTTP服务器用于支持静态内容,可以通过Tomcat的配置管理工具实现与Apache整合。
Apache和Tomcat相同点和不同点:
相同点:Apache与Tomcat都是Apache开源组织开发的用于处理HTTP服务的项目,两者都是免费的,都可以做为独立的Web服务器运行。
不同点:Apache是Web服务器而Tomcat是Java应用服务器,Apache服务器 只处理 静态HTML,Tomcat服务器 静态HTML 动态 JSP Servlet 都能处理。Tomcat只是一个servlet容器,可以认为是apache的扩展,但是可以独立于apache运行。
两种联系:一般是把 Apache服务器 与 tomcat服务器 搭配在一起用,Apache服务器 负责处理所有 静态的 页面/图片 等信息,Tomcat 只处理动态的 部分。
两者整合后优点:如果是静态 页则由Apache处理,并将结果返回;如果是动态请求,Apache会将解析工作转发给Tomcat处理,Tomcat处理后将结果通过Apache返回。这样可以达到分工合作,实现负载平衡,提高系统的性能。
4.3 Apache服务器和Tomcat服务器的整合应用
Apache是web服务器(静态解析,如HTML),tomcat是java应用服务器(动态解析,如JSP)Tomcat只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行 ,同为服务器,Tomcat的特别之处在于它还是Java的Web容器,能够处理JSP;而Apache一般是与PHP结合,并不能处理JSP。
Apache是一个Web服务器环境程序,启用他可以作为Web服务器使用,不过只支持静态 页如(ASP,PHP,CGI,JSP)等动态 页的就不行。如果要在Apache环境下运行JSP的话就需要一个解释器来执行JSP 页,而这个JSP解释器就是Tomcat。
五、尾声
————————————————
原文链接:
https://blog.csdn.net/qq_36963950/article/details/103210625
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!