apache和tomcat区别是什么?
1、服务器方面
Apache是Web服务器,Tomcat是运行在Apache上的应用服务器
Web服务器传送(serves)页面使浏览器可以浏览,Web服务器专门处理HTTP请求(request),但是应用程序服务器是通过很多协议来为应用程序提供(serves)商业逻辑(business logic)。Apache上的应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。它只是一个servlet(jsp也翻译成servlet)容器,可以认为是Apache的扩展,但是可以独立于apache运行。
2、支持连接方面
Apache是普通服务器,Tomcat是jsp/servlet容器
Apache本身只支持html静态普通网页。不过可以通过插件支持PHP,还可以与Tomcat连通(单向Apache连接Tomcat,就是说通过Apache可以访问Tomcat资源,反之不然),
Tomcat同时也支持HTML、JSP、ASP、PHP、CGI等,其中CGI需要一些手动调试,不过很容易的。
3、侧重点方面
Apache侧重于http server,Tomcat侧重于servlet引擎
如果以standalone方式运行,功能上Tomcat与apache等效支持JSP,但对静态网页不太理想。
扩展资料:
Apache是普通服务器,本身只支持html即普通网页,可以通过插件支持php,还可以与Tomcat连通。Apache只支持静态网页,但像Jsp动态网页就需要Tomcat来处理。
Apache是有C语言实现的,支持各种特性和模块从而来扩展核心功能;Tomcat是Java编写的,更好的支持Servlet和JSP。
服务器语言开发一般用Delphi、C++、net 、 java、php、python等这几种。
服务器:
1、服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。
2、服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
3、在网络环境下,根据服务器提供的服务类型不同,分为文件服务器,数据库服务器,应用程序服务器,WEB服务器等。
1 Apache是web服务器,Tomcat是应用(java)服务器,它只是一个servlet容器,是Apache的扩展。
2 Apache和Tomcat都可以做为独立的web服务器来运行,但是Apache不能解释java程序(jsp,serverlet)。
3 Apache是普通服务器,本身只支持html即普通网页。不过可以通过插件支持php,还可以与Tomcat连通(单向Apache连接Tomcat,就是说通过Apache可以访问Tomcat资源。反之不然)
4 两者都是一种容器,只不过发布的东西不同:Apache是html容器,功能像IIS一样;Tomcat是jsp/servlet容器,用于发布jsp及java的,类似的有IBM的webshere、EBA的Weblogic,sun的JRun等等。
5 Apache和Tomcat是独立的,在通一台服务器上可以集成。
打个比方:Apache是一辆卡车,上面可以装一些东西如html等。但是不能装水,要装水必须要有容器(桶),Tomcat就是一个桶(装像Java这样的水),而这个桶也可以不放在卡车上。
Apache只支持静态网页,但像asp,php,cgi,jsp等动态网页就需要Tomcat来处理。
Apache和Tomcat整合使用:如果客户端请求的是静态页面,则只需要Apache服务器响应请求;如果客户端请求动态页面,则是Tomcat服务器响应请求;因为jsp是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销 。
Apache是世界使用排名第一的Web服务器。它可以运行在几乎所有广泛使用的计算机平台上。
Apache 源于 NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。Apache对Linux的支持相当完美。
Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazoncom、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、 Windows、Linux系统平台上)以及它的可移植性等方面。
Apache的诞生极富有戏剧性。当NCSA WWW服务器项目停顿后,那些使用NCSA WWW服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的。就这样,诞生了Apache Group,后来这个团体在NCSA的基础上创建了Apache。如果你准备选择Web服务器,毫无疑问Apache是你的最佳选择。
Tomcat是一个开放源代码、运行servlet和JSP Web应用软件的基于Java的Web应用软件容器。Tomcat Server是根据servlet和JSP规范进行执行的,因此我们就可以说Tomcat Server也实行了Apache-Jakarta规范且比绝大多数商业应用软件服务器要好。
Tomcat是Java Servlet 22和JavaServer Pages 11技术的标准实现,是基于Apache许可证下开发的自由软件。Tomcat是完全重写的Servlet API 22和JSP 11兼容的Servlet/JSP容器。Tomcat使用了JServ的一些代码,特别是Apache服务适配器。随着Catalina Servlet引擎的出现,Tomcat第四版号的性能得到提升,使得它成为一个值得考虑的Servlet/JSP容器,因此目前许多WEB服务器都是采用Tomcat。
JSP=Java Server Pages (Java服务器网页)
ASP=Active Server Pages (活动服务器网页)
CGI=Common Gateway Interface (通用网关接口)
J2EE=Java 2 Platform, Enterprise Edition (Java2平台,企业版)
XML=eXtensible Markup Language (扩展标记语言)
IIS=Internet Information Server (互联网信息服务器)
1 C++当然可以实现webservice,这是毋庸置疑的axis2你知道吗本质是运行在tomcat下的一个servlet,分java版本,和C语言版本官方网站为:http://axisapacheorg/,首页上写着:
The well known Apache Axis, and the the second generation of it, the Apache Axis2, are two Web Service containers that helps users to create, deploy, and run Web Services
Axis2 is avaialble in both Java as well as C, languages and details about each version can be found below 大概意思就是这东西分java版本和C版本,可以方便用户创建,部署,运行web service而C++完全是兼容C的
2 当然需要服务器,可能要实现某个服务吧,至于怎样为其他平台服务,主要是监听端口实现解析http协议
3 你的问题有问题,js不需要拼串成XML,服务器才要拼串,JS是运行在客户端的,客户端也不是通过SOAP与服务端进行通讯的,而是根据需要调用的服务的WSDL,提供对应参数,客户端与服务端的通讯是用http协议的,而通讯方式根据是GET还是POST把相关参数放到HTTP头或者体中而web service之间的通讯才可能用得到SOAP
4 PHP调用web service是非常简单的,貌似有个函数通过SOAP调用C++编写的web service肯定有WSDL,可以根据WSDL描述的端口参数,来调用
PS1:我没有做过C++的Web service,只做过java的,但是所有语言都是相同的,基本原理都是一样的,另外web service最好的做法是对外隐藏的,不能直接调用,应该有个类似调度中心的存在来负责调用,这是一个设计方式 当然直接调用也是可以的,但这种方式效率不高
PS2:C++可以做web service,但不是很好,缺乏技术支持,软件支持,虽然管道过滤器模型不限制过滤器的实现方式,但怎么说呢,C++就是不适合,毕竟和其他构件存在配合问题,而且开发成本也会相对要高点 现在主流的是C#和JAVA
Tomcat与Nginx、Apache的关系如下图。由配送中心选择Apache、Nginx中的某一辆货车将包裹送给客户。虽然Apache、Nginx两辆车的用途是一样的,仔细区分它们两还是有区别的,比如:货物装载的速度、方式不一样,Apache有水箱可以直接运送活鱼而Nginx没有。
Tomcat有点像装活鱼的特殊包装。经过特殊包装打包的活鱼就可以通过Nginx和Apache运送到用户手中。另外,使用Tomcat包含了一种慢速的配送服务,所以配送中心一般都采用Nginx、Apache等配送。通过上面的比方引申Apache、Nginx、Tomcat的实际用途Apache全称Apache
HTTP
Server,它是Apache软件基金会的一个开放源码的网页伺服服务器软件。
Apache支持模块多,性能稳定。Apache本身是静态解析(静态页面),适合静态的HTML、等,但可以通过扩展脚本、模块来支持动态页面等。Apche可以支持PHP、CGI、Perl,但要使用Java就需要Tomcat,Java请求会通过Apache转发给Tomcat处理;
Nginx同样也是一款开源的HTTP
Server,它是由俄罗斯人编写的轻量级HTTP服务。Nginx是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP、POP3、SMTP代理服务器。Nginx本身不支持生成动态页面,很大部分Web服务器使用Nginx,主要通过Nginx的反向代理来实现负载均衡器。
Apache、Nginx本质上就是一种运用在HTTP服务器上某种应用程序,它们通过绑定服务器的IP地址并监听某一个TCP端口来接收并处理HTTP请求,这样用户(一般通过IE、Chrome、Firefox等发送请求并显示内容)就能够通过HTTP协议来获取服务器上的网页(HTML+CSS样式)、文档(PDF、txt、rar等)、音频、视频等资源。如下图:
不仅Apache和Nginx,绝大多数编程语言所包含的类库中也可以实现简单的HTTP服务供开发者使用,如:Java HTTP Server、Python SimpleHTTPServer。Apache和Nginx的对比Nginx使用异步非阻塞型事件驱动的方法来处理请求,而Apache则是通过同步阻塞型的方法来处理请求。
Apache接收一个请求后,就会创建一个进程,每个进程内单线程。对于一个负载相对较高的网站来说,256的进程,也就是256个线程。线程处理请求时是同步阻塞模式,会一直等待该请求读取程序文件(IO)(同步),执行业务逻辑,返回给客户端,所有操作完成之后才能处理下一个请求(阻塞)。如果服务器已经达到256的极限,那么接下去的访问就需要排队。这也就是为什么某些服务器负载不高的原因了。
而Ngnix接收一个请求后,不会等待这个请求的文件读取操作完成之后才接收下一个请求,它不会等待这个请求的后续的处理结果。而是会马上循环处理下一个请求(不阻塞)。请求的程序文件执行完成之后,会主动通知该线程,不用你主动去等待或者轮询查看(异步)。
最后返回给客户端。这样做,每个请求过来就不需要等待很长的时间排队,而是马上就能接收,开始进行处理了。等处理完成之后,会主动通知回调这个线程进行数据返回。
基于上述特性Nginx更轻量级,比Apache占用更少的内存及资源抗并发,Nginx静态处理性能比Apache高3倍以上。在高并发下Nginx能保持低资源低消耗高性能高度模块化的设计。但Apache组件比Nginx多,对PHP的支持比较简单,Apche的Rewrite也比Nginx强大一些。Tomcat用于扩充Apache和Nginx的动态性能从上面我们知道了Apache和Nginx的优势在于静态解析,那么动态解析就会交给其他模块处理,如Tomcat。
Tomcat是由Apache软件基金会旗下Jakarta项目开发的Servlet容器,实现对Servlet和JavaServer Page(jsp)的支持。Tomcat本身也包含了HTTP服务,也可单做独立的Web服务,但用的不多。
Tomcat一共设计了
4
种容器,它们分别为Engine、Host、Context、Wrapper,各个容器组件之间的关系是由大到小,即父子关系,它们之间关系形成一个树状的结构,它们的实现类都实现了
Container
接口。总结如果Apache、Nginx、Tomcat打一局LOL,Apache和Nginx像是冲在最前面的英雄。而Tomcat攻击性能弱,它主要负责打辅助,奶前面的英雄。
Nginx并发性好,CPU、内存占用低。但如果rewrite频繁,那还是选择Apache好一些,Apache在处理动态请求更有优势。
第一、Nginx和Tomcat的区别
Nginx主要用做静态内容服务和代理服务器,直接将外来的请求转发给后面的应用服务器;Tomcat更像是一个应用容器。
第二、nginx和Apache的区别
Apache是同步多进程模型,是可以一个连接对应一个进程,而nginx属于一步的,多个连接可以对应一个进程。
Nginx轻量级,抗并发,处理静态文件好;Apache稳定性好,对PHP支持比较简单,nginx还需要配合其他后端进行使用,处理动态请求上更有优势。
建议使用前端nginx抗并发,后端Apache集群,配合起来效果会更好。
第三、Tomcat和Apache的区别
Apache由C语言实现,支持各种特性和模块从而来扩展核心功能;Tomcat是Java实现的,可以更好地支持servlet和jsp。
Apache也是普通的服务器,本身只支持HTML静态普遍网页,不过可以通过插件来支持PHP等;Tomcat是jsp/servlet容器,支持HTML、jsp、asp、PHP、CGI等。
Apache侧重于http server,Tomcat侧重于servlet引擎。
0条评论