什么是机架?我可以使用它使用Ruby构建Web应用程序吗?

时间:2011-03-10 17:38:34

标签: ruby rack

红宝石新手警报! (嘿那押韵:))

我已阅读官方定义,但仍空手而归。当他们说中间件时究竟是什么?目的是使用ruby和https?

patnaik博客上的小教程让事情更清晰,但我如何在localhost上做些什么呢?我安装了ruby 1.9.2以及rack gem和mongrel服务器。

我先开始杂种吗?怎么样?

3 个答案:

答案 0 :(得分:34)

只是添加一个简单的Rack解释(因为我觉得缺少):

Rack基本上是一种Web应用程序可以与Web服务器通信的方式。沟通如下:

  1. 网络服务器告诉应用程序environment - 这主要包含用户作为他的请求发送的内容 - 网址,标题,是GET还是POST等等。
  2. 网络应用响应三件事:
    • status代码,如果一切正常,将会是200,而当出现问题时会高于400
    • 信息网络浏览器可以使用的headers信息,比如关于在其缓存中保留网页的时间以及其他内容的信息。
    • body这是您在浏览器中看到的实际网页。
  3. 这两个步骤或多或少可以定义Web应用程序的整个过程。

    所以一个非常简单的Rack应用程序看起来像这样:

    class MyApp
      def call(environment) # this method has to be named call
        [200, # the status code
         {"Content-Type" => "text/plain", "Content-length" => "11" }, # headers
         ["Hello world"]] # the body
      end
    end
    
    # presuming you have rack & webrick
    if $0 == __FILE__
      require 'rack'
      Rack::Handler::WEBrick.run MyApp.new
    end
    

答案 1 :(得分:8)

你会很好地搜索其他问题&对你有用的答案。尝试“Rails入门”或“Ruby Web开发”。本网站上不同主题的很多一直专注于这个主题,所以你可以省去一些麻烦......

暂时忽略问题的细节,似乎您想学习Ruby并构建Web应用程序。在开始深入研究Rack或Mongrel或其他任何内容之前,您应该知道有两个完善的框架可以帮助构建Ruby Web应用程序。第一个是Ruby on Rails,另一个是Sinatra。还有很多其他的,但这些是Stack Overflow和一般的互联网上记录最多的。

查看以下链接以了解某些背景信息......

如果你仍然渴望回答你的问题 - “什么是机架?”,你应该遵循相同的过程,最后在这个Stack Overflow答案:

What is Rack middleware?

祝你好运!

答案 2 :(得分:0)

确实非常好的答案。对于我的两分钱我会添加这个,因为如果你知道如何获得幕后的文档,你会发现很多信息,因为我把它藏在这里,绝不是我所拥有的。 http://myrackapps.herokuapp.com/