什么是机架?

关于Rack有很多谈话,但除非你自己是框架作者,否则你很少看到它。那么什么是机架?作为应用程序开发人员,为什么要关心它?

Rack Basics

机架是一种中间件。它位于web应用程序和web服务器之间。它处理所有特定于服务器的API调用,以哈希传递HTTP请求和所有环境参数,并将应用程序的响应返回给服务器。换句话说,您的应用程序不需要知道如何与HTTP服务器交谈,它需要知道如何与机架交谈。

机架的优点

这有许多优点。首先,与机架交谈很容易(如下所示)。其次,由于您只需要知道如何与Rack交谈,Rack知道如何与许多不同的HTTP服务器交谈,因此您的应用程序将在任何这些HTTP服务器上运行。机架就像web应用程序的通用适配器。

机架应用程序本身并没有什么特别之处。事实上,Rack API非常简单,可以用一句话来描述:

Rack应用程序是任何响应call方法,采用单个哈希参数并返回包含响应状态代码,HTTP响应标题和响应体作为字符串数组的数组的数组的Ruby对象。

那就很多了。这听起来太简单了,或者至少太简单而无用,但当它真正涉及到它时,这就是你在与HTTP服务器交谈时真正做的一切。

为什么Rack很重要?科学小知识ppt

但真正的问题是:为什么作为一名应用程序员,你应该关心机架?首先,理解您的框架如何运作总是存在启示。但更重要的是,您可以使用机架完成一些有用的事情。最重要的是:中间件。

现在,这听起来有点奇怪。但是,应用程序和机架之间的额外层可能是一件好事,并实现只会使应用程序混乱的功能。这个中间件所做的只是将请求从机架接收,将其传递到您的应用程序,获得其响应,添加一些内容或过滤它或沿着这些线路进行操作,然后将响应传递回机架。这可以用来实现非常有趣的小功能,如服务器不可知记录器,请求安全检查器,或者每次应用程序返回404时都会通过电子邮件发送管理器的一些中间件。这些功能都不需要混淆您的应用程序,它们可以作为带机架的中间件实现。

教育_1