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对象
参考: