กลับไปหน้าบทความ

อ่าน 3 นาที

แร็ค (อินเทอร์เฟซเว็บเซิร์ฟเวอร์)

Rack คืออินเทอร์เฟซแบบโมดูลาร์ระหว่าง เว็บเซิร์ฟเวอร์ และ เว็บแอปพลิเคชัน ที่พัฒนาด้วย ภาษาโปรแกรม Ruby ด้วย Rack อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) สำหรับ เว็บเฟรมเวิร์ก...

แร็ค (อินเทอร์เฟซเว็บเซิร์ฟเวอร์)

Rack คืออินเทอร์เฟซเว็บเซิร์ฟเวอร์ Ruby
ผู้เขียนต้นฉบับลีอาห์ นอยเคิร์ชเชน
นักพัฒนาเจมส์ ทัคเกอร์, จอช พีค, โฮเซ่ วาลิม, ไมเคิล เฟลลิงเจอร์, แอรอน แพตเตอร์สัน, ซานติอาโก ปาสโตริโน, คอนสแตนติน ฮาส
เวอร์ชันเสถียร
3.0.2 / 5 ธันวาคม 2022 [ 1 ] ( 5 ธันวาคม 2022 )
ระบบปฏิบัติการข้ามแพลตฟอร์ม
พิมพ์มิดเดิลแวร์
ใบอนุญาตใบอนุญาต MIT
เว็บไซต์rack.github.io แก้ไขข้อมูลนี้บนวิกิดาต้า
ที่เก็บข้อมูล
  • github.com/rack/rack

Rackคืออินเทอร์เฟซแบบโมดูลาร์ระหว่างเว็บเซิร์ฟเวอร์และเว็บแอปพลิเคชันที่พัฒนาด้วยภาษาโปรแกรม Rubyด้วย Rack อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) สำหรับเว็บเฟรมเวิร์กและมิดเดิลแวร์จะถูกรวมเข้า ไว้ใน เมธอดเรียกใช้เดียวที่จัดการ คำขอ และการตอบสนอง HTTP

Rack ถูกใช้โดยเฟรมเวิร์กและไลบรารี เว็บ Ruby จำนวนมาก เช่นRuby on RailsและSinatraนอกจากนี้ยังมีให้ใช้งานในรูปแบบ Ruby Gem อีกด้วย แอปพลิเคชัน Ruby จำนวนมากเรียกว่า "rack-compliant" [ 2 ]

Rack ได้สร้างแรงบันดาลใจให้กับเฟรมเวิร์กที่คล้ายกันในJavaScript [ 3 ] ( jack.js), Clojure [ 4 ] Perl ( Plack ), Common Lisp (Clack) [ 5 ]และ.NET ( OWIN ) [ 6 ]

ภาพรวม

ลักษณะเฉพาะของแอปพลิเคชัน Rack คือ อ็อบเจ็กต์แอปพลิเคชันจะตอบสนองต่อเมธอด call โดยเมธอด call จะรับอ็อบเจ็กต์สภาพแวดล้อมเป็นอาร์กิวเมนต์และส่งคืนอ็อบเจ็กต์การตอบสนองของ Rack

สิ่งแวดล้อม

แหล่งที่มา: [ 7 ]

สภาพแวดล้อมที่ถูกนำมาใช้เป็นอาร์กิวเมนต์โดยเมธอดการเรียกใช้ หมายถึงวัตถุที่มี: ก) ข้อมูลเกี่ยวกับคำขอ HTTP

ซึ่งรวมถึงข้อมูลต่างๆ เช่น:

ข) ข้อมูลเฉพาะของชั้นวาง

ซึ่งรวมถึงข้อมูลต่างๆ เช่น

  • เวอร์ชันของแอปพลิเคชัน Rack ที่กำลังทำงานอยู่
  • รูปแบบ URL ที่ใช้ กล่าวคือ คำขอที่ได้รับเป็นแบบ http หรือ https
  • ข้อมูล HTTP ดิบ
  • อ็อบเจ็กต์ Ruby สำหรับรายงานข้อผิดพลาด
  • ข้อมูล เช่น ว่ามีการเรียกใช้งานอ็อบเจ็กต์แอปพลิเคชันพร้อมกันจากเธรดหรือกระบวนการอื่นหรือไม่
  • ข้อมูลเกี่ยวกับความคาดหวังและความสามารถของเซิร์ฟเวอร์ (ความสามารถของเซิร์ฟเวอร์ในการป้องกันการโจรกรรมการเชื่อมต่อ)

ในกรณีที่แอปพลิเคชันถูกใช้เป็นมิดเดิลแวร์ สภาพแวดล้อมสามารถมีอ็อบเจ็กต์ที่ให้ข้อมูลเซสชัน ความสามารถในการบันทึกข้อมูล ข้อมูลเกี่ยวกับขนาดของข้อมูลที่สามารถใช้สำหรับการอ่านและการเขียน เป็นต้น นอกจากนี้ เซิร์ฟเวอร์ยังสามารถจัดเก็บข้อมูลของตนเองไว้ในสภาพแวดล้อมได้อีกด้วย

การตอบสนองของแร็ค

แหล่งที่มา: [ 7 ]

อ็อบเจ็กต์เซิร์ฟเวอร์แร็คจะส่งการตอบกลับซึ่งประกอบด้วยสามส่วน ได้แก่ สถานะ ส่วนหัว และส่วนเนื้อหา

  • สถานะดังกล่าวประกอบด้วยรหัสสถานะ HTTPเช่น 200, 404
  • ส่วนหัวของไฟล์จะมีข้อมูลการตอบกลับสำหรับแต่ละรายการ และระบุคู่คีย์-ค่า โดยคีย์จะต้องเป็นสตริง
  • ส่วนเนื้อหา (Body) ประกอบด้วยข้อมูลสุดท้ายที่เซิร์ฟเวอร์ส่งไปยังผู้ร้องขอ

Rack::Responseเป็นอินเทอร์เฟซที่สะดวกในการสร้างการตอบสนองของ Rack คลาสRack::Responseถูกกำหนดไว้ในไฟล์ lib/rack/response.rb ในการใช้งาน คลาส Responseให้สร้างอินสแตนซ์จากเลเยอร์มิดเดิลแวร์ลงมาตามลำดับ สามารถใช้เพื่อแก้ไขคุกกี้ได้

มิดเดิลแวร์ในแร็ค

แหล่งที่มา: [ 7 ]

Rack ช่วยให้การเพิ่มส่วนประกอบ มิดเดิลแวร์หลายตัวระหว่างแอปพลิเคชันและเว็บเซิร์ฟเวอร์ทำได้ง่าย สามารถใช้ส่วนประกอบมิดเดิลแวร์หลายตัวใน Rack ซึ่งจะทำการปรับเปลี่ยนคำขอ/การตอบกลับก่อนส่งต่อไปยังส่วนประกอบถัดไป นี่เรียกว่า มิดเดิลแวร์สแต็ก (middleware stack)

เซิร์ฟเวอร์ Rack เพิ่มมิดเดิลแวร์ระดับกลางหลายตัวตามค่าเริ่มต้นสำหรับฟังก์ชันการทำงาน เช่น การแสดงข้อยกเว้นพร้อมรายละเอียดทั้งหมด[ 8 ]การตรวจสอบความถูกต้องของคำขอและการตอบกลับตามข้อกำหนดของ Rack [ 9 ]เป็นต้น

ตัวอย่างการใช้งาน

ตัวอย่างแอปพลิเคชัน " Hello World " ที่ใช้งานร่วมกับ Rack ได้ โดยใช้ ไวยากรณ์ Ruby :

# helloWorld.ru # แอปพลิเคชันที่มีการกำหนดเมธอด call ไว้class HelloWorld # เมธอด call ที่จะส่งคืนรหัสสถานะ HTTP, ประเภทเนื้อหา และเนื้อหาdef call ( env ) [ 200 , { "content-type" => "text/html; charset=utf-8" }, [ "Hello World" ]] end endรันHelloWorld.new

สามารถเริ่มต้นเซิร์ฟเวอร์สำหรับโค้ดข้างต้นได้โดยใช้คำสั่ง "rackup helloWorld.ru" และสามารถเข้าถึงได้ที่http://localhost:9292/พอร์ตเริ่มต้นที่แอปพลิเคชัน Rack ใช้คือ 9292

ดูเพิ่มเติม

  • เว็บไซต์อย่างเป็นทางการแก้ไขข้อมูลนี้ได้ที่วิกิดาต้า
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Rack_(web_server_interface)&oldid=1305322696 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ แร็ค (อินเทอร์เฟซเว็บเซิร์ฟเวอร์)

Rack คืออินเทอร์เฟซแบบโมดูลาร์ระหว่าง เว็บเซิร์ฟเวอร์ และ เว็บแอปพลิเคชัน ที่พัฒนาด้วย ภาษาโปรแกรม Ruby ด้วย Rack อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) สำหรับ เว็บเฟรมเวิร์ก...

ภาพรวม

ลักษณะเฉพาะของแอปพลิเคชัน Rack คือ อ็อบเจ็กต์แอปพลิเคชันจะตอบสนองต่อเมธอด call โดยเมธอด call จะรับอ็อบเจ็กต์สภาพแวดล้อมเป็นอาร์กิวเมนต์และส่งคืนอ็อบเจ็กต์การตอบสนองของ Rack

ตัวอย่างการใช้งาน

ตัวอย่างแอปพลิเคชัน " Hello World " ที่ใช้งานร่วมกับ Rack ได้ โดยใช้ ไวยากรณ์ Ruby :

ดูเพิ่มเติม

Python WSGI เพิร์ล PSGI จาวาสคริปต์ JSGI วาง Python พูดคุยเล็กๆ ริมทะเล ฟาสต์ซีจีไอ จาวา เซอร์ฟเล็ต JavaScript ฝั่งเซิร์ฟเวอร์ โปรโตคอล Apache JServ ซีโร่ซี ไอซ์ ซิสโก้ เอทช์ ISAPI ( Internet Server Application Programming Interface) (Microsoft)