Rack程序

1.Rack

Rack 就是对 Ruby 的 Net::HTTP 库的封装为一个 Ruby 包,这个包能够让开发者方便易用 Net::HTTP。使用 Rack 能够快速新建一个简单的 web 应用。 启动服务端代码放在单独的 config.ru 文件中,然后通过 rackup config.ru 命令启动服务。

rack是ruby服务器和rack应用程序之间的一个框架,rails,sinatra都是基于rack构建的,都属于rack应用程序。

rack提供了一个标准的接口,用于与服务器进行交互。标准的rack程序是一个可以响应call的对象,可以是对象、Proc、lambda甚至是method,它接收env参数(环境对象),返回一个数组,数组包括:

  • 状态(status),http响应状态码
  • 可以是hash,为http的header信息
  • 拥有each方法的对象,each返回字符串

rack通过中间件来进行扩展,即对原始的rack程序进行装饰,在原有返回数组的基础上进一步处理,并返回rack对象

参考:

  1. 理解 Rack 应用及其中间件
  2. Ruby on Rails中Rack中间件的基础学习教程