CGI เป็น Common Gateway Interface ตามชื่อบอกว่ามันเป็นอินเตอร์เฟส "ทั่วไป" ของเกตเวย์สำหรับทุกสิ่ง มันช่างไร้เดียงสาและไร้เดียงสาจากชื่อ ฉันรู้สึกว่าฉันเข้าใจสิ่งนี้และฉันรู้สึกอย่างนี้ทุกครั้งที่ฉันพบคำนี้ แต่ตรงไปตรงมาฉันไม่ได้ ฉันยังสับสนอยู่
ฉันเป็นโปรแกรมเมอร์ PHP ที่มีประสบการณ์การพัฒนาเว็บไซต์
ผู้ใช้ (ไคลเอนต์) ร้องขอสำหรับหน้า ---> webserver (-> ล่าม PHP แบบฝัง) ----> สคริปต์ฝั่งเซิร์ฟเวอร์ (PHP) สคริปต์ ---> เซิร์ฟเวอร์ MySQL
ตอนนี้สมมติว่าสคริปต์ PHP ของฉันสามารถดึงผลลัพธ์จากเซิร์ฟเวอร์ MySQL & เซิร์ฟเวอร์ MATLAB และเซิร์ฟเวอร์อื่น ๆ
ดังนั้นตอนนี้ PHP Script คือ CGI เพราะส่วนต่อประสานระหว่างเว็บเซิร์ฟเวอร์และเซิร์ฟเวอร์อื่นทั้งหมดหรือไม่ ฉันไม่รู้ บางครั้งพวกเขาเรียก CGI เทคโนโลยีและเวลาอื่น ๆ ที่พวกเขาเรียกโปรแกรม CGI หรือเซิร์ฟเวอร์อื่น ๆ
CGI คืออะไร
เรื่องใหญ่
/cgi-bin/*.cgi
อะไรกับ? เกิดอะไรขึ้นกับสิ่งนี้? ฉันไม่รู้ว่าcgi-bin
ไดเรกทอรีนี้อยู่บนเซิร์ฟเวอร์อะไร ฉันไม่รู้ว่าทำไมพวกเขาถึงมีนามสกุล * .cgiทำไม Perl ถึงเข้ามาเสมอ CGI & Perl (ภาษา) ฉันก็ไม่รู้เหมือนกันว่าเกิดอะไรขึ้นกับสองสิ่งนี้ เกือบตลอดเวลาที่ฉันได้ยินทั้งสองรวมกัน "CGI & Perl" หนังสือเล่มนี้เป็นอีกหนึ่งตัวอย่างที่ดีCGI การเขียนโปรแกรมด้วย Perl ทำไมไม่ "การเขียนโปรแกรม CGI ด้วย PHP / JSP / ASP" ฉันไม่เคยเห็นสิ่งต่าง ๆ เช่นนี้
การเขียนโปรแกรม CGI ใน Cทำให้ฉันสับสนมาก " ใน C " อย่างจริงจัง?? ฉันไม่รู้จะพูดยังไงดี ฉันแค่สับสน " ใน C " สิ่งนี้เปลี่ยนแปลงทุกสิ่ง โปรแกรมจะต้องรวบรวมและดำเนินการ ทั้งหมดนี้เปลี่ยนมุมมองของฉันในการเขียนโปรแกรมเว็บ ฉันจะรวบรวมเมื่อไหร่ โปรแกรมได้รับการดำเนินการอย่างไร (เพราะจะเป็นรหัสเครื่องดังนั้นจึงต้องดำเนินการตามกระบวนการอิสระ) มันสื่อสารกับเว็บเซิร์ฟเวอร์ได้อย่างไร IPC? และการเชื่อมต่อกับเซิร์ฟเวอร์ทั้งหมด (ในตัวอย่างของฉัน MATLAB & MySQL) โดยใช้โปรแกรมซ็อกเก็ต? ฉันหลงทาง!!
มีคนบอกว่า CGI เลิกใช้แล้วและไม่ได้ใช้งานอีกต่อไป เป็นอย่างนั้นเหรอ? อัพเดตล่าสุดคืออะไร
ครั้งหนึ่งฉันเจอสถานการณ์ที่ฉันต้องให้สิทธิ์การเข้าถึง HTTP PUT กับเว็บเซิร์ฟเวอร์ (Apache HTTPD) มันกลับมานาน ดังนั้นเท่าที่ฉันจำได้ว่านี่คือสิ่งที่ฉันทำ:
แก้ไขไฟล์การกำหนดค่าของ Apache HTTPD เพื่อบอกให้เว็บเซิร์ฟเวอร์ส่งการร้องขอ HTTP PUT ทั้งหมดไปที่บางส่วน
put.php
(ฉันต้องเขียนสคริปต์ PHP นี้)ใช้ put.php เพื่อจัดการคำขอ (บันทึกไฟล์ไปยังตำแหน่งที่กล่าวถึง)
มีคนพูดว่าฉันเขียน CGI Script อย่างจริงจังฉันไม่มีเงื่อนงำสิ่งที่พวกเขากำลังพูดถึง
- ฉันเขียน CGI Script จริงๆเหรอ?
ฉันหวังว่าคุณจะเข้าใจว่าความสับสนของฉันคืออะไร (เพราะฉันเองไม่รู้ว่าฉันสับสนอยู่ที่ไหน) ฉันขอให้พวกคุณรักษาคำตอบของคุณให้ง่ายที่สุด ฉันไม่เข้าใจคำศัพท์ทางเทคนิคแฟนซีใด ๆ อย่างน้อยก็ไม่ได้ในกรณีนี้
แก้ไข:
ฉันพบบทเรียนที่น่าทึ่งนี้"การเขียนโปรแกรม CGI ง่ายมาก!" - CGI Tutorialซึ่งอธิบายแนวคิดในวิธีที่ง่ายที่สุด หลังจากอ่านบทความนี้คุณอาจต้องการอ่านการเริ่มต้นใช้งานการเขียนโปรแกรม CGI ใน Cเพื่อเสริมความเข้าใจของคุณด้วยตัวอย่างโค้ดจริง ฉันได้เพิ่มลิงก์เหล่านี้ไปยังบทช่วยสอนนี้ในบทความของ Wikipedia: http://en.wikipedia.org/wiki/Common_Gateway_Interface