Rack

כאשר עובדים עם HTTP דינמי, ישנם כמה דרכים לבצע את אותם המשימות.

דרך ראשונה היא ליישם את CGI (או את FastCGI או את scgi וכו'), דרך שנייה היא לספק כלים טבעיים בשפת התכנות לעשות את אותו הדבר בדיוק. גם רובי וגם פיתון מספקים כלים טבעיים בשפה בשביל לדבר ב HTTP.

ברובי יש לנו את הכלי שנקרא Rack.

הדוגמא הפשוטה ביותר לעבוד איתו היא בצורה הבאה:

class HelloWorld
def call(env)
[200, {"Content-Type" => "text/plain"}, ["Hello world!"]]
end
end

כאשר נקרא למתודה call יודפס לנו הראש של HTTP והתוכן של Hello World מייד אחריו. אבל זוהי דוגמא מופשטת מאוד.

הרעיון של Rack (וכלים אחרים בסגנון) הוא בכך שאנחנו מנהלים בעצם את האפליקציות/שרתי HTTP שלנו תחת קורת גג אחת, ובכך אפשר לקחת כמה תוכנות שונות שיודעות לדבר עם Rack (וכלים אחרים בסגנון) ולגרום להם להיות אפליקציה אחת בעצם אשר ניתן להרחיב ולשנות את התכונות בהתאם לצורך ולריצה שמתרחשת באותו הזמן.

הרעיון של rack הוא לא שתתכנתו בו, אלא יותר ש frameworks ישתמשו בו, ולכן הוא מספק בעצם כלים לשרתי HTTP שבייחד עם תוכנות/קוד/כלי תיווך (middleware – יש מילה טובה יותר בעברית ?) יספקו מענה לשרת בשביל לעבוד על ה framework.

בין השרתים שמשתמשים ב Rack ניתן למצוא את:

  • Ebb
  • Fuzed
  • Phusion Passenger

ניתן גם למצוא כמה שרתים/כלים אשר מספקים תמיכה לספרייה:

  • Mongrel
  • EventedMongrel
  • SwiftipliedMongrel
  • WEBrick
  • FCGI
  • CGI
  • SCGI
  • LiteSpeed
  • Thin

החל מגרסה 2.3x של rails, כל השירותים מבוססי rails (כלומר לא תוספות) עברו להשתמש בכלי הזה.

מחשבה אחת על “Rack

  1. פינגבק: Rails 2.3 « לראות שונה

להשאיר תגובה

הזינו את פרטיכם בטופס, או לחצו על אחד מהאייקונים כדי להשתמש בחשבון קיים:

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s