在企业实际开发中,可以处理用户请求的服务器分为几种基本种类,不同的服务器处理解决不同的问题。这种灵活性为开发人员在应用程序创建和部署方面提供了很大的选择权,但也导致了对各种类型服务器使用场景产生了困惑。
Web服务器
从基本层面上看,用户通常通过Web浏览器向系统提交请求。(为了清楚起见,我们暂时忽略所有其他类型的客户端(RMI,CORBA,COM / DCOM,定制等)Web请求必须由Web服务器接收 (也称为 HTTP服务器)。该Web服务器必须处理标准的HTTP请求和响应,然后将HTML返回给请求用户。在服务器环境中执行的代码可能是CGI驱动的,Servlet,ASP或其他服务器端编程语言,但最终的结果是Web服务器将HTML传递给用户。
Web服务器可能需要执行一个应用程序来响应用户请求,它可能会生成新闻项目列表,或者处理用户填写的表单内容提交到留言评论区。如果服务器应用程序被编写为Java Servlet,则需要一个地方来执行,而这个地方通常被称为 Servlet引擎。根据Web服务器的不同,此引擎可能是内部的,外部的或者其他完全不同的组件。与传统的CGI环境不同,CGI脚本是在每次向服务器发送请求时启动的。这个持久性提供了一个servlet连接,以及一个维护每个HTTP请求之间状态的简单方法。JSP页面通常与servlet引擎绑定在一起,并且会在与servlet相同的空间/应用程序内执行。
有许多产品以不同的方式处理Web服务和Servlet引擎。Netscape / iPlanet Enterprise Server将Servlet引擎直接构建到Web服务器中并在相同的进程空间内运行。Apache要求servlet引擎在外部进程中运行,并通过TCP / IP套接字与引擎通信。其他服务器(如MS IIS)并未正式支持servlet,并且需要附加产品才能添加该功能。