- อินเทอร์เฟซเกตเวย์ทั่วไปหรือ CGI เป็นมาตรฐานสำหรับโปรแกรมเกตเวย์ภายนอกเพื่อเชื่อมต่อกับเซิร์ฟเวอร์ข้อมูล เช่น เซิร์ฟเวอร์ HTTP
- เวอร์ชันปัจจุบันคือ CGI/1.1 และ CGI/1.2 อยู่ในระหว่างดำเนินการ
การท่องเว็บ
เพื่อให้เข้าใจแนวคิดของ CGI ให้เราดูว่าเกิดอะไรขึ้นเมื่อเราคลิกไฮเปอร์ลิงก์เพื่อเรียกดูหน้าเว็บหรือ URL เฉพาะ
- เบราว์เซอร์ของคุณติดต่อกับเว็บเซิร์ฟเวอร์ HTTP และต้องการ URL เช่นชื่อไฟล์
- เว็บเซิร์ฟเวอร์แยกวิเคราะห์ URL และค้นหาชื่อไฟล์ หากพบไฟล์นั้น ให้ส่งกลับไปที่เบราว์เซอร์ มิฉะนั้นจะส่งข้อความแสดงข้อผิดพลาดที่ระบุว่าคุณขอไฟล์ผิด
- เว็บเบราว์เซอร์ตอบสนองจากเว็บเซิร์ฟเวอร์และแสดงไฟล์ที่ได้รับหรือข้อความแสดงข้อผิดพลาด
อย่างไรก็ตาม เป็นไปได้ที่จะตั้งค่าเซิร์ฟเวอร์ HTTP เพื่อที่ว่าเมื่อใดก็ตามที่มีการร้องขอไฟล์ในไดเร็กทอรีบางไฟล์ ไฟล์จะไม่ถูกส่งกลับ แทนที่จะทำงานเป็นโปรแกรม และสิ่งที่ส่งออกของโปรแกรมนั้นจะถูกส่งกลับมาเพื่อให้เบราว์เซอร์ของคุณแสดงผล ฟังก์ชันนี้เรียกว่า Common Gateway Interface หรือ CGI และโปรแกรมเรียกว่าสคริปต์ CGI โปรแกรม CGI เหล่านี้อาจเป็น Python Script, PERL Script, Shell Script, C หรือ C++ เป็นต้น
แผนภาพสถาปัตยกรรม CGI
การสนับสนุนและกำหนดค่าเว็บเซิร์ฟเวอร์
ก่อนที่คุณจะดำเนินการเขียนโปรแกรม CGI ตรวจสอบให้แน่ใจว่าเว็บเซิร์ฟเวอร์ของคุณรองรับ CGI และมีการกำหนดค่าให้จัดการโปรแกรม CGI โปรแกรม CGI ทั้งหมดที่จะดำเนินการโดยเซิร์ฟเวอร์ HTTP จะถูกเก็บไว้ในไดเร็กทอรีที่กำหนดไว้ล่วงหน้า ไดเร็กทอรีนี้เรียกว่า CGI Directory และตามแบบแผนจะตั้งชื่อเป็น /var/www/cgi-bin ตามธรรมเนียม ไฟล์ CGI มีนามสกุลเป็น cgi แต่คุณสามารถเก็บไฟล์ของคุณด้วยนามสกุล .py หลามได้เช่นกัน
ตามค่าเริ่มต้น เซิร์ฟเวอร์ Linux ถูกกำหนดค่าให้รันเฉพาะสคริปต์ในไดเร็กทอรี cgi-bin ใน /var/www หากคุณต้องการระบุไดเร็กทอรีอื่นเพื่อเรียกใช้สคริปต์ CGI ของคุณ ให้แสดงความคิดเห็นบรรทัดต่อไปนี้ในไฟล์ httpd.conf -
<Directory "/var/www/cgi-bin"> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> <Directory "/var/www/cgi-bin"> Options All </Directory>
ที่นี่ เราคิดว่าคุณมีเว็บเซิร์ฟเวอร์และทำงานสำเร็จ และคุณสามารถเรียกใช้โปรแกรม CGI อื่น ๆ เช่น Perl หรือ Shell เป็นต้น