请选择 进入手机版 | 继续访问电脑版

软件服务器的前世今生

[复制链接]
查看: 1319|回复: 0
avatar

630

主题

630

帖子

1920

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1920
online_admin 发表于 2021-8-9 21:12:06 | 显示全部楼层 |阅读模式
一、前言

在程序员的日常工作中,少不了遇到服务器这个概念,特别是服务端开发的程序员。服务器从概念上可以理解为硬件服务器,也可以理解为软件服务器,硬件服务器,不用解释,人人都懂,就是一台高性能的计算机;软件服务器包括两种: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应用。

四、进一步说明

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常常与Tomcat整合起来使用,Apache处理静态页面,比如Html页面,而Tomcat负责编译处理JSP页面与Servlet。

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

五、尾声

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

————————————————

版权声明:本文为CSDN博主「毛奇志(公众号:毛奇志)」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_36963950/article/details/103210625
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

logo
  • 反馈建议:893566502@qq.com
  • 工作时间:周一到周五 10:00-19:00

关注我们

  • wx