转自:http://blog.csdn.net/zwk626542417/article/details/9819343

概要

   应用程序、虚拟目录、应用程序池这三个概念在上一篇中《一看就会之—利用IIS服务发布网站(实践篇)上中多次涉及,所有我们今天就重点来理解一下这几个概念。

 

应用程序

 

应用程序和软件的区别

   应用程序是指为了完成某项或某几项特点任务而被开发运行于操作系统上的计算机程序。可能到这里有的人就认为那程序不就是软件了吗,其实程序和软件不是一个概念,程序只是我们软件的一部分,在这里我们为大家举个例子来让大家区别下程序和软件,一个游戏软件包括程序(比如windows平台的*.exe,macosx平台的*.app等)和其它图片(*.bmp等)、dll文件、音效(*.wav等)帮助文档等等附件,那么只有这个(*.exe或者*.app)程序称作“应用程序”,而它与其他文件(dll文件、图片、音效、帮助文档等)在一起合称“软件”,这样大家对应用程序和软件应该就可以分清楚了。

 

Web应用程序

   下面呢回到我们今天的主题上来,在上篇文章中的我们利用iis发布的应用程序单指我们的Web应用程序,Web应用程序一般是B/S模式。Web应用程序首先是“应用程序”,和用标准的程序语言,如C、C++等编写出来的程序没有什么本质上的不同。然而Web应用程序又有自己独特的地方,就是它是基于Web的,而不是采用传统方法运行的。换句话说,它是典型的浏览器/服务器架构的产物,用户只需要有浏览器即可,不需要再安装其他软件。一个Web应用程序是由完成特定任务的各种Web组件(webcomponents)构成的并通过Web将服务展示给外界。在实际应用中,Web应用程序是由多个Servlet、JSP页面、HTML文件以及图像文件等组成。所有这些组件相互协调为用户提供一组完整的服务。

 

 

应用程序池:

    说完应用程序,不能不提我们的应用程序池,它的定义是应用程序池是将一个或多个应用程序链接到一个或多个工作进程集合的配置。

 

    这样理解起来有点抽象,我为大家举个例子来方便大家的理解,我们将Web应用程序具体实例化为一个动态网站。应用程序池就是可以看成装载计算机分配给动态网站的内存的容器。如果内存是水,那么应用程序池就是鱼缸,动态网站就是鱼缸中的金鱼。多个动态网站可以存在于同一个应用程序池里,即鱼缸中可以放多条金鱼。当然,如果金鱼多了,鱼缸中的空间有限,金鱼之间就会争抢空间,不是很坚固的鱼缸可能就会破裂,所有金鱼都会受到影响。即是动态网站多了,内存不足,可能会造成内存级别的溢出漏洞,影响所有在那个应用程序池上的动态网站。所以说应用程序池就是一个容器,它内部装的是动态网站的内存。

 

虚拟目录

    虚拟目录理解起来较为容易,虚拟目录顾名思义就是虚拟的不存在的,虚拟目录只不过是对网站的物理路径目录的一个映射而已。使用虚拟目录的重要意义是,网络管理员可以把Web站点的负载分布到多台服务器上,这样使每台服务器都能保持较高的处理速度,即提高了网站的速度也增加了网站真实服务器的安全性。我们平常用的较多的像百度、谷歌、淘宝、京东,它们几乎都采用虚拟目录这种方式,来将站点的负载分布到不同区域很多台服务器上,这样便可以很好的保证大量用户登录时网站提供优质的处理速度。

 

    在这里还有一点要说的就是,虚拟目录可以用来被访问,但是如果虚拟目录不转为应用程序时,虚拟目录里面的一些动态脚本不能执行,包括ASPX、ASP等等。转换成应用程序后,虚拟目录中的动态脚本便可以执行了。

 

    这样我们上一篇文章中的问题这里面就找到答案了,添加完网站后,没有添加虚拟目录自然可访问我们开发的网站,因为这时我们访问的是网站的物理路径,自然可以访问了。而没有将其转为应用程序也不影响访问,是因为我们的开发的网站比较简单,没有用到很多的动态脚本和ASPX、ASP等等,所以才不会影响我们对开发网站的访问。所以在这里我们还是建议大家发布网站添加虚拟目录并转为应用程序,这样才会万无一失。

 

总结

   学习并不是一件孤立的事情,我们应将我们的学习与我们的生活有机结合起来,从我们生活中找到鲜活的例子来再现我们所学习到的抽象知识,从生活的角度学习,我们的学习会越来越轻松的。