1.0 ฟังก์ชั่นของโปรแกรม CGI:
ก่อนอื่น Common Gateway Interface (CGI) คืออะไร CGI เป็นมาตรฐานที่ใช้กำหนดวิธีการสื่อสารระหว่างเว็บเซิร์ฟเวอร์และโปรแกรมภายนอก เพื่อให้โปรแกรมภายนอกสามารถสร้าง HTML รูปภาพ หรือเนื้อหาอื่นๆ และเซิร์ฟเวอร์จัดการ HTML รูปภาพ หรือเนื้อหาอื่นๆ ที่ไม่ได้สร้างขึ้นโดยโปรแกรมภายนอก ก็เหมือนกัน ดังนั้น โปรแกรม CGI จึงช่วยให้คุณสร้างไม่เพียงแต่เนื้อหาแบบคงที่ แต่ยังรวมถึงเนื้อหาแบบไดนามิกด้วย เหตุผลในการใช้ CGI ก็คือ เป็นมาตรฐานที่มีการกำหนดไว้ชัดเจนและได้รับการสนับสนุนอย่างกว้างขวาง แม้ว่า java, ActiveX ฯลฯ จะสามารถทำหน้าที่ของโปรแกรม CGI ได้อย่างสมบูรณ์ แต่ไม่ใช่ทุกเบราว์เซอร์ที่รองรับ ในทางตรงกันข้าม เบราว์เซอร์ทั้งหมดรองรับ CGI เช่น Lynx, IE, Netscape เป็นต้น
อย่างไรก็ตาม เช่นเดียวกับเทคโนโลยีอื่นๆ CGI ก็มีข้อจำกัด ในส่วนนี้ ผมจะอธิบายฟังก์ชัน ข้อดี และข้อเสียของโปรแกรม CGI
1.1. ฟังก์ชั่น CGI
มีงานมากมายที่ CGI เป็นตัวเลือกที่ดีที่สุดและมีเพียงงานเดียว และงานเหล่านี้สามารถแบ่งออกเป็นสามประเภท: งานระดับเริ่มต้น งานระดับกลาง และงานขั้นสูง งานเบื้องต้นเป็นงานที่ต้องใช้การเขียนโปรแกรมเพียงเล็กน้อย เช่น
ตัวนับข้อความ
โปรแกรมสร้าง HTML อย่างง่าย
โปรแกรมที่มีความยาวน้อยกว่า 50 บรรทัดที่เขียนด้วย Perl, Shell Script, C หรือ C++
มีข้อดีอย่างน้อยสามประการในการใช้ CGI ในการเขียนงานดังกล่าว ประการแรก CGI รันเร็วที่สุด ในขณะที่ Java มีราคาแพงเกินไป ประการที่สอง มาตรฐาน CGI เข้ากันได้กับเบราว์เซอร์ปัจจุบันมากที่สุด ซึ่งได้รับการกล่าวถึงก่อนหน้านี้ ประการที่สาม ทรัพยากร CGI มีมากมาย และคุณสามารถค้นหารหัส CGI นับพันได้บนอินเทอร์เน็ต
งานระดับกลาง ได้แก่ การทำแผนที่รูปภาพและงานการเขียนโปรแกรมอื่นๆ ที่ซับซ้อนกว่าเล็กน้อย ในระดับกลาง ความง่ายในการเขียนโปรแกรมใน CGI และ Java มีความแตกต่างเล็กน้อย
งานดังกล่าวได้แก่:
การทำแผนที่ภาพ
สคริปต์ CGI เพื่อสร้าง HTML แบบเต็มหน้า
แอนิเมชั่น
สำหรับงานขั้นสูง CGI นั้นง่ายกว่าการเขียนโปรแกรมใน Java มาก งานดังกล่าวได้แก่:
การดำเนินการฐานข้อมูลแบ็กเอนด์
เครื่องมือค้นหา
ไดนามิกเพจหลายหน้า
การดำเนินการฐานข้อมูลส่วนหลัง (แอปพลิเคชันที่เข้าถึงฐานข้อมูล) สะท้อนให้เห็นถึงความเหนือกว่าของ CGI CGI มีประวัติบางอย่างที่ผู้อื่นเคยทำฟังก์ชันที่มีประโยชน์มากมายในไลบรารี CGI ในเวลาเดียวกัน บริษัทขนาดใหญ่หลายแห่งได้จัดเตรียมซอร์สโค้ดที่สร้างด้วย CGI Java เป็นภาษาโปรแกรม และ CGI เป็นข้อกำหนดการทำงานของโปรแกรมเกตเวย์ หากมีการเปลี่ยนแปลงที่สำคัญใน Java คุณจะต้องเขียนโปรแกรมใหม่ทั้งหมด และหากมีการเปลี่ยนแปลงที่สำคัญใน CGI คุณจะต้องอัปเกรดโปรแกรมไลบรารี CGI เท่านั้น
อย่างไรก็ตาม CGI มีข้อจำกัดในบางพื้นที่
1.2. ข้อจำกัดของ CGI
ในแง่ของการแมปรูปภาพและแอนิเมชั่น โปรแกรม CGI นั้นไม่ง่ายที่จะพัฒนาเหมือนกับโปรแกรม Java ขณะนี้ Java กำลังได้รับความนิยมมากขึ้นเรื่อย ๆ โปรแกรม CGI ก็เหมาะสมมากขึ้นสำหรับการเขียนโปรแกรมขนาดสั้นและซับซ้อนและแอปพลิเคชันฐานข้อมูล
1.3. ฟังก์ชั่นโปรแกรม CGI
คุณสมบัติที่ใหญ่ที่สุดของโปรแกรม CGI คือสามารถคอมไพล์ในภาษาใดก็ได้และรันบนแพลตฟอร์มใดก็ได้ ตราบใดที่เป็นไปตามข้อกำหนดของ CGI ตารางต่อไปนี้เป็นการเปรียบเทียบ:
งาน CGI+HTML HTML
ดำเนินการตามแบบฟอร์ม ใช่ ไม่ใช่
สร้างเนื้อหาที่ไม่คงที่บนหน้าเว็บใช่ ไม่ใช่
ประมวลผลไฟล์รูปภาพ ใช่ ใช่
ค้นหาใช่ไม่ใช่ในหน้าเว็บไซต์และเอกสาร
สร้างแบบฟอร์มใช่ ใช่
สร้างเอกสารที่ไม่ขึ้นอยู่กับแพลตฟอร์ม ใช่ ใช่
สร้างแอปพลิเคชันเชิงโต้ตอบ เช่น ห้องสนทนา ใช่ ไม่ใช่
การสร้างเพจไดนามิก ใช่ ไม่ใช่
ตัดเอกสารหน้าตามความต้องการของผู้ใช้ ใช่ ไม่ใช่
ต่อไป เราจะปิดท้ายการบรรยายนี้ด้วยชุดโปรแกรม "Hello World":
เพิร์ล:
ต้องการ "cgi-lib.pl";
PRint&PrintHeader;
พิมพ์ " ";
พิมพ์ "สวัสดีชาวโลก";
พิมพ์ &PrintEnv;
ออก;
ไฟล์นี้ถูกจัดเก็บไว้ในไดเร็กทอรี C:HTTPDCGI-BIN และชื่อว่า 2_1.pl โทรในเบราว์เซอร์โดยใช้ที่อยู่ http://localhost/cgi-bin/2_1.pl โปรดทราบว่า OmniHTTPD ควรทำงานอยู่ในขณะนี้ หากทุกอย่างเป็นไปด้วยดี คุณจะเห็น "Hello World" และตัวแปรสภาพแวดล้อมในเบราว์เซอร์ของคุณ
ซี: #รวม
#รวม "html-lib.h"
#รวม "cgi-lib.h"
int หลัก()
-
html_header();
html_begin("ทดสอบ CGI");
h1("โปรแกรม CGI");
printf(" ");
h2("ตัวแปรสภาพแวดล้อม CGI");
print_cgi_env();
html_end();
กลับ 0; }
หลังจากการคอมไพล์ ให้คัดลอกไฟล์ปฏิบัติการไปที่ C:HTTPDCGI-BIN เปลี่ยนชื่อเป็น 2_1.cgi และเรียกมันด้วยที่อยู่ http://localhost/cgi-bin/2_1.cgi