- The Common Gateway Interface (CGI) เป็นมาตรฐานสำหรับ external gateway programs เพื่อเชื่อมต่อกับ information servers เช่น HTTP servers
- เวอร์ชันปัจจุบันคือ CGI/1.1 และ CGI/1.2 กำลังดำเนินการ
Web Browsing
เพื่อเข้าใจ concept ของ CGI มาดูว่าอะไรเกิดขึ้นเมื่อเราคลิก hyperlink เพื่อ瀏覽เว็บเพจหรือ URL เฉพาะ:
- เบราว์เซอร์ติดต่อ HTTP web server และขอ URL (filename)
- Web Server แยกวิเคราะห์ URL และหา filename ถ้าพบไฟล์ ส่งกลับไปยังเบราว์เซอร์ มิฉะนั้นส่งข้อความ error ว่าขอไฟล์ผิด
- Web browser รับ response จาก web server และแสดงไฟล์ที่ได้รับหรือข้อความ error
อย่างไรก็ตาม สามารถตั้งค่า HTTP server ให้เมื่อไฟล์ในไดเรกทอรีเฉพาะถูกขอ ไฟล์นั้นจะไม่ส่งกลับ แต่จะถูก execute เป็นโปรแกรม และ output ของโปรแกรมนั้นจะส่งกลับเพื่อให้เบราว์เซอร์แสดง ฟังก์ชันนี้เรียกว่า Common Gateway Interface (CGI) และโปรแกรมเหล่านี้เรียกว่า CGI scripts CGI programs เหล่านี้อาจเป็น Python Script, PERL Script, Shell Script, C หรือ C++ program, ฯลฯ
CGI Architecture Diagram

Web Server Support and Configuration
ก่อนเริ่ม CGI Programming ตรวจสอบว่า Web Server รองรับ CGI และตั้งค่าจัดการ CGI Programs แล้ว CGI Programs ทั้งหมดที่จะถูก execute โดย HTTP server จะเก็บในไดเรกทอรีที่กำหนดไว้ล่วงหน้า เรียกว่า CGI Directory และโดย convention ชื่อว่า /var/www/cgi-bin โดย convention CGI files มี extension .cgi แต่คุณสามารถเก็บไฟล์ด้วย extension .py ได้เช่นกัน
โดย default Linux server กำหนดให้รันเฉพาะสคริปต์ใน cgi-bin directory ใน /var/www ถ้าต้องการระบุไดเรกทอรีอื่น สามารถ comment บรรทัดต่อไปนี้ใน httpd.conf:
AllowOverride None Options ExecCGI Order allow,deny Allow from all Options All
ที่นี่เราสมมติว่าคุณมี Web Server ทำงานสำเร็จแล้ว และรัน CGI program อื่นๆ เช่น Perl หรือ Shell ได้แล้ว