在
Ruby on Rails的上下文中,我常常听到“中间件”一词.究竟是什么?你能提供具体的例子吗?
解决方法
中间件与Rack相关,Rack是用于Web应用程序的标准Ruby API.由于Rails应用程序是Rack应用程序,因此它们都适用于两者.
机架中间件是应用程序服务器(Webrick,Thin,Unicorn,Passenger,…)和实际应用程序(如Rails应用程序)之间的一切.这是Web应用程序服务器和应用程序本身之间的pipeline.
对于机架应用程序的输入是包含所有HTTP请求详细信息(以及更多)的“环境”.输出是HTTP响应.中间件层就像可以修改输入,输出或两者的过滤器. Rails使用中间件到implement some of its features(查询缓存,cookie存储,http方法扩展),但可以添加自己的.
机架中间件是使用Rack的Web应用程序之间重用简单的Web相关行为的有效方式,无论底层框架如何.如果您的一部分应用程序添加了功能,但不负责HTTP响应,则它将被视为Rack中间件.
您可以将其作为Rack middleware实现的一些示例包括:
> HTTP缓存(服务器端和客户端)
>记录
>认证
>监控
> HTTP头过滤