2011-03-10 35 views
15

紅寶石新手提醒! (嘿那個韻:))什麼是機架?我可以使用它與Ruby構建Web應用程序嗎?

我看過官方定義但還是空手而來。什麼時候他們說中間件?使用https與https的目的是什麼?

patnaik的博客上的小文教程讓事情更清晰,但我該如何在本地主機上做些什麼呢?我有紅寶石1.9.2與機架寶石和雜種服務器一起安裝。

我是否首先啓動雜種?怎麼樣?

回答

35

我想補充貨架的最簡單的說明(因爲我覺得丟失):

機架基本上是在一個Web應用程序可以與Web服務器通信的方式。通信是這樣的:

  1. Web服務器講述environment應用程序 - 這主要包含用戶發送的內容作爲他的要求 - 該URL,標題,它是否是一個GET或POST等
  2. 的Web應用程序有三件事情迴應:
    • status代碼將會像200當一切都OK及以上400時出事了。
    • headers這是信息網頁瀏覽器可以使用類似的信息持久保存在他們的緩存和其他東西的網頁多久。
    • body這是您在瀏覽器中看到的實際網頁。

這兩個步驟更多或更少的可限定通過網絡應用程序的工作的全過程。

所以有一個非常簡單的機架應用程序看起來是這樣的:

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

是的,我可能本應該回答這個問題......很好。 – Nuby 2011-03-10 20:51:39

+0

所以我的問題Jakub是:我如何真正運行您在此展示的非常簡單的基本應用程序? – 2011-03-11 01:33:01

+0

你應該可以用'ruby my_app.rb'運行它。然而,如果你有一個較老的ruby,你可能需要在上面添加一個'require'rubygems''行,並且只有'sudo'才能運行,並且在WEBrick.run中添加一個':Port => 7890'參數'電話。 – 2011-03-11 08:25:12

9

你會很好地搜索其他問題&對你有意義的答案。試試「Rails入門」或「Ruby Web開發」。不同的主題在這個站點A 很多一直致力於這個確切的主題,所以你可能會節省自己的一些麻煩那裏......

忽略你的一分鐘的問題的細節,好像你想學習Ruby和構建Web應用程序。在開始深入研究Rack或Mongrel或其他任何工具之前,您應該知道有2個完善的框架可以幫助構建Ruby Web應用程序。第一個是Ruby on Rails,另一個是Sinatra。還有很多其他的,但是這些是Stack Overflow和Internet上最好的文檔。

檢查出的一些背景以下鏈接...

如果你仍然有強烈的願望來回答你問題 - 「什麼是機架?」,你這麼說LD遵循相同的過程,在這個堆棧溢出回答結束了:

What is Rack middleware?

祝你好運!

+0

謝謝nuby!我現在要睡覺,但會有那個詞「中間件」仍然在我耳邊響起 - 確實是一個多麼可怕的詞! – 2011-03-10 18:22:26

0

很不錯的答案是確實。對於我的兩分錢,我會補充一點,因爲如果你知道如何到達幕後的文檔,你會發現很多信息,因爲我把它藏在這裏,決不是我所擁有的。 http://myrackapps.herokuapp.com/

相關問題