Rack: provides a minimal interface between webservers supporting Ruby and Ruby frameworks,在Web服务器和Ruby(Ruby框架)之间提供最小的接口规范。
WSGI:Python Web Server GateWay Interface,Python的Web服务器网关接口,也就是说Python的Web Server都要遵循这个接口。
Servlet:Web Server端应用,担当客户请求和服务器端响应的中间层,当然还包含各种服务器端规范,Java的Web服务器都要实行这一规范。
对比这三者,出发点都是一样的,要规范Web Server和Web Framekwork之间接口,假设Web Server和Web框架之间的桥梁。Web Server实现了这个规范,是为了更方便框架开发者,框架开发者不再需要了解Web Server具体的API。Web框架遵循了这个规范,框架将可以部署到各种Web Server上,方便最终的开发人员。这样,我们编写的Ruby,Python和Java代码就更规范,更统一,更便于理解。Rack,目前Ruby大多数框架(如rails,Sinatra等)和Web Server(Mongrel,Thin等)都支持,这样我们可以在Ruby代码中利用Rack API来实现相关的功能。Python的WSGI是web server规范,当然很多的框架都用这一特性,如Django等。Servlet就更不用说啦,Java中的Web Framework(如Struts,Spring MVC等)基本都是利用Servlet规范实现相关的功能的。
Del.icio.us : Rack, Servlet, WSGI